html - 更改浏览器默认表单下拉按钮?
问题描述
我有一个影响不同浏览器的非常奇怪的 CSS 问题,我不明白这是怎么发生的。如何设置表单下拉菜单按钮和下拉内容的样式?背景颜色可以更改,边框可以更改,但更改 CSS 边框半径时,border-radius 不会更改。
每个浏览器上的表单按钮看起来都不同。下拉菜单在 Firefox 上显示效果最好,因为它没有边框半径,没有像 Safari 那样的发光,甚至下拉内容显示绿色背景颜色和白色文本。
1 = Safari,发光 + 边框半径 + 基本的白色下拉内容。
2 = Chrome,边框半径 + 基本的白色下拉内容 + 更大的长度。
3 = Firefox,样式完美,具有样式的下拉内容,但下拉图标很糟糕!
解决方案
这不是一个下拉元素 - 而是一个选择 html 元素,因此可用的样式有限,正如您所发现的 - 浏览器之间的差异很大。
您可以隐藏浏览器本机图标并通过在父(选择包装)元素上设置 position: relative 并在子(图标)元素上设置 position: absolute 并根据需要放置它来插入您自己的图标。
这使您可以控制图标的外观。请注意,出于可访问性问题,建议使用焦点发光 - 但如果您绝对愿意,可以将其删除。
.select-wrapper {
position: relative;
width: 90px
}
select {
padding: 4px 24px 4px 8px;
font-size: 14px;
background: #36af4b;
color: #fff;
border-radius: 4px;
-webkit-appearance: none;
-moz-appearance: none;
text-indent: 1px;
text-overflow: '';
width: 100%;
display: block
}
select:focus {
outline: none;
}
.select-wrapper .fa{
position: absolute;
color: #fff;
right: 10px;
top: 5px;
z-index: 1
}
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.css" />
<div class="select-wrapper">
<select>
<option> option 1</option>
<option> option 2</option>
<option> option 3</option>
</select>
<span class="fa fa-angle-down"></span>
</div>
推荐阅读
- php - 从函数内的多个值进行数组搜索
- typescript - 有没有办法使用变量来实例化具有参数列表中可选参数的类?
- angular - 为什么我的初始 ngrx 状态不适用于 ngIf
- java - 如何引用添加到二叉树的方法?
- python - PYOMO:对抽象模型集的操作
- android - 为什么将 Glide 作为 ByteArray 的图像加载到 ImageView 时不会根据 EXIF 旋转它?
- tableau-api - 如何在仪表板中创建一个下拉或多选过滤器来过滤所有工作表?
- webgl - WebGL 是否能够使用 GPU 的全部功能?
- android - 将 Dismissible 放在 PageView 中。扑
- android - 模拟器可以使用数据库但设备不能