之前一直用windows做开发,最近换了个mac,在几经折腾之下,安装完了各种开发工具,IDE等,然后欣然打开自己正在开发的网站。突然发现mac上所有的下拉框都变了,都是默认样式,无论padding,height都不起作用了,
然后就去搜博客呀,果然,网上好多朋友都在说这个问题,苹果也是让人恼火。
附上一个连接
http://blog.csdn.net/liushuwei0224/article/details/8554995
后来经过搜集资料,修改,调试在测试,依然无果,macos上的select怎么都不能修改高度,
然后最后我要告诉大家的是,给select添加默认样式: border-radius: 0; select瞬间变高变漂亮了
虽然不知道原因,但是希望可以让大家知道这一小小的修改,能解决这一小问题,然后将就着用也挺好看的。
其实中途以为无解的时候,还写了个自定义下拉框样式,还是给大家分享一下吧
less 代码
.custom-select {
@lineHeight: 36px;
@border: #119ae8;
display: inline-block;
*display: inline;
*zoom:;
height: @lineHeight;
width: 100px;
border: 1px solid #d2d2d2;
position: relative;
line-height: @lineHeight;
text-align: center;
vertical-align: bottom;
margin-right: -4px;
background: white;
&.show {
border: 1px solid @border;
}
.select-text {
display: inline-block;
*display: inline;
*zoom:;
position: absolute;
top:;
left:;
width: 100%;
height: @lineHeight;
cursor: pointer;
cursor: pointer;
.text {
display: inline-block;
height: @lineHeight;
width: 80px;
margin-right: 20px;
line-height: @lineHeight;
overflow: hidden;
}
.arrow {
position: absolute;
right: 5px;
top: 12px;
height:;
width:;
display: inline-block;
*display: inline;
*zoom:;
border: 10px solid transparent;
border-top-color: #9e9e9e;
}
}
.select-options {
display: none;
position: absolute;
top: 37px;
left: -1px;
width: 100%;
border: 1px solid @border;
border-top:none;
background: white;
z-index:;
max-height: 200px;
overflow: auto;
line-height: @lineHeight - 10;
&.show {
display: inline-block;
*display: inline;
*zoom:;
}
.select-option {
display: inline-block;
height: @lineHeight - 10;
color: black;
line-height: @lineHeight - 10;
width: 100%;
cursor: pointer;
&:hover {
background: #119ae8;
color:white;
}
}
}
}
然后用js控制一下点击事件的逻辑
var select = $('.custom-select');
var optionsContainer = select.find('.select-options');
var selectText = select.find('.select-text');
selectText.find('.text').text('语言方向'); var optionsList = ['test']; // 列表信息从本地固定或者从网络抓取
optionsContainer.find('.select-option').remove();
$(optionsList).each(function(index, el){
optionsContainer.append($('<span class="select-option" lang="'+ el +'">'+langMap[el]+'</span>'));
} optionsContainer.find('.select-option').click(function(e){
selectText.find('.text').text($(this).text());
optionsContainer.removeClass('show');
select.removeClass('show');
}); var selectOptionTimer;
optionsContainer.hover(function(){
// 鼠标进入选择项区域,停止关闭定时器
clearTimeout(selectOptionTimer);
}, function(){
// 鼠标离开选择区域,停止定时器,并关闭选择区域
clearTimeout(selectOptionTimer);
optionsContainer.removeClass('show');
select.removeClass('show');
}); selectText.click(function(){
// 如果当前下拉框是打开状态,则关闭
if(optionsContainer.hasClass('show')) {
optionsContainer.removeClass('show');
select.removeClass('show');
} else {
// 如果当前不是打开状态,先关闭其他所有下拉列表
$('.custom-select .select-options').removeClass('show');
clearTimeout(selectOptionTimer); // 然后再现实当前下拉列表
optionsContainer.addClass('show');
select.addClass('show');
// 如果显示,需要在一定时间之内关闭
selectOptionTimer = setTimeout(function(){
optionsContainer.removeClass('show');
select.removeClass('show');
}, 5*1000);
}
});
最后在页面添加对应的元素就OK了
<span class="custom-select">
<span class="select-text">
<span class="text"></span>
<span class="arrow"></span>
</span>
<span class="select-options">
## will rendered by js
## span.select-option
</span>
</span>
当然大伙也还是可以随便拿去随便改,毕竟这是空了闲着随便写
最后来一个效果图
关于safari上的select宽高问题小技,自定义下拉框的更多相关文章
-
jquery美化select,自定义下拉框样式
select默认的样式比较丑,有些应用需要美化select,在网上找到一个很好的美化样式效果,本人很喜欢,在这里分享一下. <!DOCTYPE html PUBLIC "-//W3C/ ...
-
select标签设置只读的方法(下拉框不可选但可传值)
1. <select id="s1" name="s1" onfocus="this.defaultIndex=this.selectedInd ...
-
jquery Combo Select 下拉框可选可输入插件
Combo Select 是一款友好的 jQuery 下拉框插件,在 PC 浏览器上它能模拟一个简单漂亮的下拉框,在 iPad 等移动设备上又能回退到原生样式.Combo Select 能够对选项进行 ...
-
JS为Select下拉框添加输入功能
JavaScript使用parentNode.nextSibling.value实现的本功能,实际上你会发现网页上有两个控件元素,一个是Select,一个是input,使用CSS将input覆盖于se ...
-
高仿QQ即时聊天软件开发系列之三登录窗口用户选择下拉框
上一篇高仿QQ即时聊天软件开发系列之二登录窗口界面写了一个大概的布局和原理 这一篇详细说下拉框的实现原理 先上最终效果图 一开始其实只是想给下拉框加一个placeholder效果,让下拉框在未选择未输 ...
-
自定义样式的select下拉框深入探索
第一个版本: 首先实现自定义select下拉框应该具有的功能,我是选择将原来的select隐藏掉,自己在jquery代码中动态写进去<dl><dd><dt>这样的结 ...
-
Jquery对select下拉框的操作
一.jQuery获取Select选择的Text和Value:语法解释: $("#select_id").change(function(){//code...}); //为Se ...
-
吾八哥学Selenium(四):操作下拉框select标签的方法
我们在做web页面自动化测试的时候会经常遇到<select></select>标签的下拉框,那么在Python里如何实现去操作这种控件呢?今天就给大家分享一下这个玩法.为了让大 ...
-
解决select下拉框禁用(设置disabled属性),后台获取值为空
如果下拉框设置disabled属性后,提交表单到后台,后台获取的下拉框的值为空,以下有三种解决获取不到下拉框选项值的方法. 有下拉框html如:<select name="select ...
随机推荐
-
Docker学习笔记整理
Docker接触有一段时间了,但是对于Docker的使用可以说是一点不会.现在要在Docker上部署基于Angular开发的页面.只能一点点积累查找的资料,顺手整理一下,方便后面的回顾. 其中用到的资 ...
-
从维度理解dp问题
对于dp,我目前的理解就是,干成题目中的那件事需要作出若干次决策,然后你要取其中最优的结果,我们可以用深搜来递归地找最优解,然后我们来观察一下这个递归树的形状,如果它能从底往上直接递推的话,就不用递归 ...
-
让java程序在后台一直执行(例如putty关闭后后台程序继续运行)
如果在终端中执行java -jar xxx.jar&命令,当终端关闭时,xxx.jar也会同时结束运行,但是如果执行nohup java -jar xxx.jar&命令,则程序会在后台 ...
-
宙斯是一个完整的Hadoop的作业平台[转]
https://github.com/alibaba/zeus 宙斯(zeus)是什么 宙斯是一个完整的Hadoop的作业平台从Hadoop任务的调试运行到生产任务的周期调度 宙斯支持任务的整个生命周 ...
-
hdu1690 Bus System (dijkstra)
Problem Description Because of the huge population of China, public transportation is very important ...
-
intptr_t 指针(转)
reference:http://muchong.com/bbs/ 对于64为系统: typedef signed char int8_t; typedef short int int16_t; ty ...
-
Kali学习笔记1:Linux基本命令及安装Java
ls -l 详细信息ls /dev/ -ls 很详细ls -a 显示隐藏ls -lh 方便看ls -lh --sort=size 按大小排序.开头的都是隐藏 cd /media/ 进入cd .. 上一 ...
-
Linux文件的时间
关于Linux文件的ctime.atime和mtime等几个时间的介绍,推荐<Linux的3个文件时间>比较不错,这篇文章已经介绍的比较全面了,但是本文对它做进一步的解释,并对一些情况进行 ...
-
MyBatis 中#与$的区别
今天在工作中有个点击排序的功能调试了许久,终寻因,总结之. 需求是这样的,页面有个table,有一列的上下箭头可点击并排序.对于这种需求,我的mybatis.xml的sql配置写成了如下: < ...
-
C++中unique函数
目录 介绍 用法举例 数组 vector 介绍 unique是STL比较实用的一个函数.用于"去除"容器内相邻的重复的元素(只保留一个).这里说的去除并不是真正将容器内的重复元素删 ...