給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" onmousedown="if(this.options.length>3){this.size=4}" onblur="this.size=1" onchange="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標簽的下拉框高度在不同的瀏覽器下有不同的高度,如果不是刻意要統一高度,可以不做限制。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM