当有很多option的时候,下拉框会变得很长,有些业务要求下拉面板固定一定的高度,超出部分用滚动条。从别的博客能找出这样的解决方案:
<select style="position: absolute;z-index: 1;" onmousedown="if(this.options.length>6){this.size=7}" onblur="this.size=0" onchange="this.size=0" size="0"> <option>1</option> <option>2</option> <option>3</option> <option>4</option> <option>5555555555555555555555555555555555555555</option> </select>
注意,此时不能设置select或option的height属性,如果要求option有一定的高度,给option设置padding属性。
这种方式存在一定的缺陷,比如鼠标滑过option时没有了高亮显示,比如下拉框的宽度可能会固定死导致较长的option展示不全,比如不同设备不同浏览器展示效果不同,可能存在bug级的展示缺陷等等。不过如果你的业务单一,这种方式还是可行的
不建议改变原生select的下拉框高度,如果真有这个需求,建议使用div或者ul模拟一个下拉框。