2010-10-29 78 views
10

有一个HTML列表框:我如何列表框的高度设置为自动

<select id="targetField" multiple="multiple" name="D1" style="width:200px;"> 
       <option>INDIA</option> 
       <option>USA</option> 
       <option>UK</option> 
       <option>AUSTRALIA</option> 
       <option>RUSSIA</option> 
       <option>FRANCE</option> 
       <option>HOLLAND</option> 
</select> 

我需要设置的这种自动即高度我不想滚动条出现。

我试图Height:auto;但它不是在IE工作。

我该怎么做?

回答

15

设置size property到的项目数,像这样:

<select id="targetField" multiple name="D1" style="width:200px;" size="7"> 

如果您需要以编程方式做到这一点,你可以设置所有<select>元素的选项长度,就像这样:

$("select").attr("size", function() { return this.options.length; }); 

You can test it out here

0

尝试height:100%。它是在IE6

+0

nope.It不要在IE 8的工作。 – 2010-10-29 08:58:23

1

工作,就可以使用“行高” eighter并把值“高度”修改它。

<select id="targetField" multiple="multiple" name="D1" style="width:200px; line-height:27px; float:left; height:130px;"> 
       <option>INDIA</option> 
       <option>USA</option> 
       <option>UK</option> 
       <option>AUSTRALIA</option> 
       <option>RUSSIA</option> 
       <option>FRANCE</option> 
       <option>HOLLAND</option> 
</select> 

希望这会有所帮助。

1

将size属性设置为等于项目数量(选项)。

var select = $('#targetField'); 
select.attr('size', select[0].options.length);