给select标签设置下拉框高度

 

最近的需求涉及有下拉框,突然想到如果下拉选项过多的话可能要对下拉框的高度做一下限制,查了一下select标签,有size这个属性,原以为可以实现。

<!DOCTYPE html>
<html>
<body>

<select size="3" style="width:100px">
  <option value="volvo">Volvo</option>
  <option value="saab">Saab</option>
  <option value="opel">Opel</option>
  <option value="audi">Audi</option>
  <option value="audi2">Audi2</option>
  <option value="audi3">Audi3</option>
  <option value="audi4">Audi4</option>
  <option value="audi5">Audi5</option>
</select>
  
</body>
</html>

  实际如下显示:

直接只设置size的话,select标签占size所设置的行数,并在size内滚动。

给select标签设置事件实现限制下拉选项过长时的效果

onmousedown:当选项数量超出某个值时,限制最大显示数量。

onblur:鼠标离开则收缩回一行

onchange:确定选项时收缩回一行

<!DOCTYPE html>
<html>
<body>

<select style="width:100px" οnmοusedοwn="if(this.options.length>3){this.size=4}" οnblur="this.size=1" οnchange="this.size=1">
  <option value="volvo">Volvo</option>
  <option value="saab">Saab</option>
  <option value="opel">Opel</option>
  <option value="audi">Audi</option>
  <option value="audi2">Audi2</option>
  <option value="audi3">Audi3</option>
  <option value="audi4">Audi4</option>
  <option value="audi5">Audi5</option>
</select>
</body>
</html>

  实现效果:

未触发时:

触发时:

 

选择选项后:

 

11-22补充:

在没有加这几个事件的情况下,select标签的下拉框高度在不同的浏览器下有不同的高度,如果不是刻意要统一高度,可以不做限制。

 

转载于:https://www.cnblogs.com/basterdaidai/p/8083214.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值