【发布时间】:2017-07-12 23:09:46
【问题描述】:
我们有一个带有大型数字选择元素的站点,该元素当前设置为各种“旋转”轮,但我们需要将其更改为标准的<select><option> 类型输入。问题在于 Chrome 和新版本的 Safari 现在将下拉选项显示为与 select 元素相同的字体大小,而 Firefox 以我们更喜欢的浏览器原生字体大小显示下拉选项。
这对于 Chrome / Safari 来说似乎是一种奇怪的行为,因为它们不允许其他样式继承自(字体、颜色等)。
这里有一个jsfiddle来演示,你可以在不同的浏览器中试一试,看看不同的输出。
我们真的想坚持使用原生,而不是设计定制的东西来维护 iOS Safari、Android Chrome 等的原生移动选择界面。
非常感谢任何帮助,谢谢!
.select-wrapper {
position: relative;
display: block;
font-size: 16px;
}
.selectClass {
position: relative;
display: block;
font-size: 96px;
text-transform: uppercase;
}
.selectClass option {
font-size: 16px !important;
}
.selectClass .option-5 {
font-size: 16px !important;
}
<div class='select-wrapper'>
<select class="selectClass">
<option value="">Option 1</option>
<option value="">Option 2</option>
<option value="">Option 3</option>
<option value="">Option 4</option>
<option class='option-5' value="">Option 5</option>
<option value="">Option 6</option>
<option value="">Option 7</option>
</select>
</div>
【问题讨论】:
-
仅供参考:如果您将
font-family: serif添加到selectClass,您甚至会看到更多不一致。在 macOS Chrome 上,字体大小会延续到选项中,但字体系列不会! -
本地选择框在不同的浏览器中显示不同,但如果你想让它在所有浏览器中看起来都一样,最好检查silviomoreto.github.io/bootstrap-select
-
您只能将非常有限的一组 CSS 应用到
select的option。因此,如果您想要真正可定制的解决方案,您最好 1) 使用position: absolute编写自己的块或 2) 使用一些 JavaScript 组件来实现下拉功能。 -
真的很沮丧他们如何处理这些,真的。我不会因为你不能设计风格而感到不安,因为有些风格被应用而有些则没有,而且在
option和select之间没有独立的风格控制 - 我正在为 45 做一个地板选择器- 故事建筑 - 我希望所选楼层在屏幕上是一个大数字,但我肯定不需要下拉菜单是相同的大数字......我想在保持原生 UI 的同时做到这一点在移动。 “太糟糕了”-Chrome/Safari
标签: html css google-chrome cross-browser