mozilla 对于美化 select 元素的样式有这样一段描述(用 CSS 美化 Select 元素):css
众所周知,select 元素很难用 CSS 进行高效的设计。你能够影响任何元素的某些方面 - 例如,操纵框模型,显示的字体等,你能够使用 appearance 属性来删除默认的系统外观。
可是,这些属性不会在浏览器之间产生一致的结果,而且很难在列中将不一样类型的表单元素相互排列。 select 元素的内部结构复杂,难以控制。 若是你想得到彻底控制,你应该考虑使用一个具备良好设施的库来构建窗体小部件(例如jQuery UI),或者尝试使用非语义元素,JavaScript 和 WAI-ARIA 滚动本身的下拉菜单来提供语义。jquery
Firefox 浏览器 select 原样式以下,当 option 超出 20 个元素时,展现 20 个元素,产生竖向滚动条:
浏览器
不过 select 元素提供了 size 属性,来控制控件中显示的行数 —— option 元素的个数app
size属性
若是控件显示为滚动列表框,则此属性表示为控件中同时可见的行数。浏览器不须要将选择元素呈现为滚动列表框。默认值为0字体
改变后的样式以下:
设计
使用 size 属性改变 select 元素的高度 codepen 在线示例code
改变后的样式以下:
使用其余元素替代 select 元素,模拟 select 选择 codepen 在线示例(js 中需引入 jquery 库,效果才会生效)cdn
<script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>