【发布时间】:2013-12-20 09:30:54
【问题描述】:
在 Bootstrap 3 中设置表单 <select> 元素的样式时,它会在 OS X 上的 Firefox 中呈现丑陋的按钮:
这显然是一段时间以来的已知问题,并且有许多黑客和解决方法,其中没有一个非常干净(https://github.com/twbs/bootstrap/issues/765)。我想知道除了使用 Bootstrap 下拉菜单或额外插件之外,是否有人找到了解决此问题的好方法。我故意选择使用 HTML <select>'s 而不是 Bootstrap 下拉菜单,因为在移动设备上使用长列表时可用性更好。
这是 Firefox 问题还是 Bootstrap 问题?
详细信息:Mac OS X 10.9、Firefox 25.0.1
2013 年 12 月 4 日更新:我对使用 Firefox、Chrome 和 Safari 在 OS X 10.9 上的每个浏览器如何呈现 <select> 进行了并排比较,在回复@zessx(使用http://bootply.com/98425)。显然,<select> 表单元素在浏览器和操作系统之间的呈现方式存在很大差异:
我了解<select> 标签的处理方式会因您使用的操作系统而异,因为有基于操作系统的本机控件来决定样式和行为。但是,Bootstrap 中的 class="form-control" 是什么导致 <select> 表单元素在 Firefox 中看起来不同?为什么 Firefox 中默认的、未设置样式的 <select> 看起来还可以,但是一旦设置了样式,它就很难看?
【问题讨论】:
-
对于 FireFox 用户来说,这是正常的,并不丑陋。 Bootstrap 仅使用 CSS 来设置样式,不会使用脚本将选择转换为列表项,我相信 Foundation 会这样做。也看看 IE 看看那里发生了什么。不同的浏览器不会以相同的方式呈现表单元素。 Chrome 看起来最好。
-
FireFox 的原生选择在调整大小时会变得模糊,但它们看起来是这样的:jsbin.com/amimUhUg/1
-
谢谢,克里斯蒂娜。我可以接受 Firefox 的自定义样式
<select>,尽管它确实有点模糊。唯一的问题是,在 Chrome 和 Safari 中,它看起来仍然像默认的<select>元素——换句话说,自定义样式似乎只适用于 Firefox。 (使用jsbin.com/amimUhUg/1) -
好吧,你可以把选择 css 放在一个 webkit only 媒体查询 (atsign) 媒体屏幕和 (-webkit-min-device-pixel-ratio: 0) { } 然后不放任何样式选择在那之外,这样firefox和ie以及所有其他人都不会选择它们。一旦你在一个选择上添加了一个边框,firefox 就会在你的图像中为 BS3 执行第一列。
-
@ChristinaArasmoBeymer 作为 Firefox 用户,我发现 OS X 上的这些下拉按钮丑得要命;他们看起来直接从 Win95 出来
标签: css twitter-bootstrap twitter-bootstrap-3