div模拟select/option解决兼容性问题及增加可拓展性

个人博客:

http://mcchen.club


 

想到做这个模拟的原因是之前使用select>option标签的时候发现没有办法操控option的很多样式,比如line-height等,还会由此导致在IE8及以下版本浏览器中的各种问题。

这个模拟思路很简单,也很清晰,我就直接上代码了

html:

第一层div是模拟select标签,第二层div是模拟option下拉列表

1 <div>
2     <div class="sim-select"></div>
3 </div>
4 <div class="sim-downList">
5 
6 </div>

css:

这个按需求可自己随意扩展随意调

1 .sim-select { height: 30px; line-height: 30px; border: solid 2px #f0f0f0;}
2 .sim-downList {line-height: 30px; border: solid 1px #d9d9d9; display: none; }
3 .sim-option {
4   &:hover { background-color: red; cursor: pointer;}
5 }

js:

Ps:记得引用jq库

我是自己模拟的types数据,可以添加form,拓展为获取后台数据等。

 1 var types = [{name:"选择11111"},{name:"选择222222"},{name:"选择333333"},{name:"选择4444444"},{name:"选择55555"}];
 2         var $select = $(".sim-select"),$downList = $(".sim-downList"), i,$length = types.length;
 3         for(i=0;i<$length;i++) {
 4             $downList.append("<div class='sim-option'>" + types[i].name + "</div>")
 5         }
 6         $select.text(types[0].name);
 7         $select.click(function () {
 8 
 9             if($downList.is(":visible")){
10                 $downList.hide();
11             }
12             else {
13                 $downList.show();
14             }
15         });
16         $(".sim-option").click(function () {
17             var _this = this;
18             var text = _this.textContent;
19             $select.text(text);
20         })

具体效果:

 

以上纯属本人的拙见,恳请指出不足之处,共勉。^_^

转载于:https://www.cnblogs.com/McChen/p/4729529.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/405222.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux Socket网络通信示例

记录一下Linux 网络通信编程示例&#xff0c;主要用内网穿透和网络调试助手进行调试。 1、源文件&#xff1a; #include <stdlib.h> #include <sys/types.h> #include <stdio.h> #include <netinet/in.h> #incldue <string.h> //bze…

[react] 需要把keys设置为全局唯一吗?

[react] 需要把keys设置为全局唯一吗&#xff1f; 不需要,key是用来进行diff算法的时候进行同层比较,准备的说key只需要在兄弟节点之间唯一,一般情况key选取是后端定义的id.万不得已的时候可以选择index(选择index是万不得已的选择,因为选择了index后,一些操作会改变index的值…

Windows Phone 实用开发技巧(3):输入框自动聚焦并打开SIP

大家看到这个标题&#xff0c;可以会问什么是SIP&#xff08;看过我Windows Phone 7 Tips系列的童鞋应该知道&#xff09;&#xff0c;SIP全称为Soft Input Panel&#xff0c;即触摸屏中的输入键盘。在Windows Phone 应用程序中&#xff0c;可能会碰到这样的情况&#xff0c;即…

shell除法计算

From: http://5iwww.blog.51cto.com/856039/270119 shell计算中使用除法&#xff0c;基本默认上都是整除。比如&#xff1a;num12num23num3expr $num1 / $num2这个时候num30 ,是因为是因为expr不支持浮点除法解决的方法&#xff1a;num3echo "sclae2; $num1/$num2" …

stm32+lwip(四):网页服务器测试

ST官方有lwip的例程&#xff0c;下载地址如下&#xff1a; https://www.st.com/content/st_com/en/products/embedded-software/mcus-embedded-software/stm32-embedded-software/stm32-standard-peripheral-library-expansion/stsw-stm32070.html 本文例子参考ST官方给出的例…

[react] 你有使用过suspense组件吗?它帮我们解决了什么问题?

[react] 你有使用过suspense组件吗&#xff1f;它帮我们解决了什么问题&#xff1f; 动态加载(异步组件)加载时候会有延迟,在这延迟期间可以将一些内容展示给用户,比如loading 个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定…

HDOJ 2046 骨牌铺方格 【递推】

HDOJ 2046 骨牌铺方格 【递推】 题目链接 http://acm.hdu.edu.cn/showproblem.php?pid2046 铺2*1只有一种情况&#xff08;一竖&#xff09; 2*2有两种情况&#xff08;两横或两竖&#xff09; 2*n (n≥3)时 可以先铺1块竖着&#xff0c;再铺n-1块 还有先铺2块横着&#x…

cygwin清屏

From: http://www.cclove.me/Enable_clear_command_on_cygwin.html 默认安装的cygwin的bash shell并没有clear命令&#xff0c;于是有些shell程序需要用到的时候就蛋疼了&#xff1a; Katherinecclove ~$ cls -bash: cls: command not foundKatherinecclove ~$ clear -bas…

Linux 用C/C++创建新文件并写入内容

1、需求 在Linux环境下用C编写一个函数&#xff0c;用于记录运行日志&#xff0c;要求只存在一个同名文件&#xff0c;每次记录前清除已有的信息。 2、思路 需要完成的是&#xff1a; &#xff08;1&#xff09;查找&#xff08;access&#xff09;是否该文件存在&#xff…

动态加载JS脚本【转】

原文&#xff1a;http://mario-design.iteye.com/blog/147810 要实现动态加载JS脚本有4种方法&#xff1a; 1、直接document.write <script language"javascript"> document.write("<script srctest.js><\/script>"); </script>…

如何将Eclipse中的开源项目使用到Android Studio中

近几日&#xff0c;笔者用到了一些开源项目&#xff0c;比如著名的PTR项目。但是在使用的过程中&#xff0c;遇到了一些问题。 这个开源库是在Eclipse上面写的&#xff0c;我们现在开发用的是Android stuido。 两种软件的项目结构是不同的&#xff0c;那么怎么把PTR用到我们的项…

EditPlus常用快捷键

From: http://katrina.blog.51cto.com/709863/144111 editplus占内存比较小&#xff0c;加载速度快&#xff0c;很强大。文本类&#xff1a;新建普通文本 CtrlN 新建普通的文本(经常建立一个新脚本平时很容易遇到)新建浏览器窗口 CtrlShiftB 新建浏览器…

[react] super()和super(props)有什么区别?

[react] super()和super(props)有什么区别&#xff1f; react 中的class 是基于es6的规范实现的, 继承是使用extends关键字实现继承的&#xff0c;子类必须在constructor()中调用super() 方法否则新建实例 就会报错&#xff0c;报错的原因是 子类是没有自己的this对象的&#…

VC实现表单提交并设置获取COOKIE:

可以尝试通过 HttpAddRequestHeaders 来添加自已的COOKIE: char * lpszHeaders "Cookie: Keysomevalue"; DWORD dwHeadersLength strlen(lpszHeaders); HttpAddRequestHeaders(hOpenRequest, lpszHeaders, dwHeadersLength, HTTP_ADDREQ_FLAG_A…

STM32 网络通信Web Server中 SSI与CGI的应用解析

本次主要解析STM32网络通信中WebServer应用&#xff0c;从网页界面的编写到浏览器与STM32之间进行通信的数据来说明SSI与CGI的原理及应用&#xff0c;并对GET与POST指令进行应用解析。 硬件和软件环境&#xff1a; 1.硬件环境&#xff1a;STM32F407&#xff0c;网卡芯片LAN87…

ggg

ggg转载于:https://www.cnblogs.com/britphy/p/4744739.html

树莓派SSH 连接不上:socket error Event:32 Error:10053

问题如下&#xff1a; 解决办法&#xff1a;ssh文件夹下的文件权限问题。 cd /etc/ssh sudo chmod 0644 * sudo chmod 0600 ssh_host_ecdsa_key ssh_host_rsa_key登陆成功&#xff1a;

嵌入式设备web服务器比较

现在在嵌入式设备中所使用的web服务器主要有&#xff1a;boa、thttpd、mini_httpd、shttpd、lighttpd、goaheand、appweb和apache等。 Boa 1.介绍 Boa诞生于1991年&#xff0c;作者Paul Philips。是开源的&#xff0c;应用很广泛&#xff0c;特别适合于嵌入式设备&#xff0c…

UML造型——使用EA时序图工具的开发实践和经验

Enterprise Architect&#xff08;下面简称EA&#xff09;是一款基于OMG UML的可视化模型与设计工具。提供了对软件系统的设计和构建、业务流程建模和基于领域建模的支持&#xff0c;被企业和组织不仅应用于对系统的建模&#xff0c;还用于推进模型在整个应用程序开发周期中实现…

Qt QInputDialog文本输入对话框示例

1、代码如下 //引入头文件: #include <QInputDialog>//...//...//...//具体用法&#xff1a; bool isOK;//QInputDialog 是否成功得到输入 QString text QInputDialog::getText(NULL, "参数设定", "输入单次召测统计时间&#xff0c;eg.\"0:0:…