html - 使用 CSS 设置选择标签的样式
问题描述
我能够自定义下拉列表(下面的代码):
select {
padding: 1em;
width: 130%;
border-radius: .2em;
border: 1px solid #acacac;
color: #181820;
appearance: none;
-webkit-appearance: none;
-moz-appearance: none;
-ms-appearance: none;
background: url('https://cdn1.iconfinder.com/data/icons/arrows-vol-1-4/24/dropdown_arrow-512.png');
background-repeat: no-repeat;
background-size: 15px 15px;
background-position: right;
background-origin: content-box;
}
解决方案
你真的不能。从 mdn 检查这个片段:https ://developer.mozilla.org/en-US/docs/Web/HTML/Element/select
众所周知,该
<select>
元素很难使用 CSS 高效地设置样式。您可以像任何元素一样影响某些方面——例如,操作盒子模型、显示的字体等,您可以使用外观属性来删除默认的系统外观。但是,这些属性不会在浏览器之间产生一致的结果,并且很难将不同类型的表单元素在列中相互排列。元素的
<select>
内部结构复杂,难以控制。如果您想获得完全控制,您应该考虑使用具有良好功能的库来设置表单小部件的样式,或者尝试使用非语义元素、JavaScript 和 WAI-ARIA 来滚动您自己的下拉菜单以提供语义。
确实请检查高级指南,了解您可以做些什么来设置它们的样式。一个很好的例子说明选项的样式有多糟糕:
您会注意到选项不会继承父级上设置的字体。您也无法始终如一地设置间距和颜色等内容。例如,Firefox 在
<option>
元素上设置时会应用颜色和背景色,Chrome 不会。他们都不会应用任何间距
推荐阅读
- ruby - 如何将哈希中的许多值相互比较
- javascript - 有没有办法在reducer新添加的对象中解构?
- php - 为什么在最新的 Wordpress 更新中出现未定义的属性 stdClass 错误?
- angular - Angular PWA / Service worker offline translation width ngx-translate
- python - 当我尝试在 Knime python 脚本节点中迭代熊猫数据框时,我收到“TypeError:'DataFrame' object is not callable”
- javascript - Selection on an object in Vue
- python - 从 VBA 运行 Python 脚本,检查“RetVal = Shell”命令是否有效
- python - How to write json data into a column based on the value in another column in CSV file python
- apache-spark - 通过更改表列名称的类型来更改表列名称时,无法使用 spark 读取数据
- javascript - 将数组推送到 Postman 中的环境变量