【发布时间】:2011-06-12 13:01:10
【问题描述】:
这看起来很简单,但我什至找不到任何东西告诉我它不可能可能,更不用说如何去做了。
我有一个使用扩展/多个selects 的页面,我似乎无法控制选项的高度。他们看起来真的很舒服。在 Firefox 中,height 和 line-height 中 option 的 CSS 值似乎都具有预期的效果,padding 也是如此,但在 Chrome 8 或 Safari 5 中却没有。我错过了什么吗?这是我的代码示例。我已经添加了任何可能影响选项的内容,以防我遗漏了一些压倒一切的价值。
body, input, select, checkbox {
font-family:'Avenir Lt Std',AppleGothic,'century gothic',Verdana,sans-serif;
font-size: 15px;
font-weight:200;
line-height: 18px;
}
input, select {
color:#4c2a18;
border: 1px solid #cfc8b4;
background-color:#ffffff;
-moz-border-radius: 0;
-webkit-border-radius: 0;
border-radius: 0;
margin:0;
}
option {
height: 35px;
padding:5px;
line-height: 35px;
}
<select size="5">
<option value="">This is option 1</option>
<option value="">Option 2</option>
<option value="">Just trying to show how the line height thing works.</option>
</select>
您可以在here 中查看它。
【问题讨论】:
-
我不是 100% 确定,但我认为这在 Chrome 中可能是不可能的。
select元素(当然还有它的子option元素)受底层操作系统而非浏览器的控制。它在其他浏览器中完全有效,这让我感到惊讶。您可以使用样式化且受 JavaScript 控制的ul(或ol)来实现样式化的 select-type 元素。 -
我可以在 Chrome 中设置
select元素的样式,并在其中添加padding等。 -
我总是忘记'Enter'提交评论。无论如何,我已经考虑过
ul路线,但当select做得非常好时,它似乎没有必要,除了把所有东西塞得太近。我试图弄清楚为什么它并不总是看起来很拥挤 - 如果有更远的层次结构导致了这种情况,或者是什么。