【发布时间】:2009-07-05 08:06:59
【问题描述】:
我想在 html "select" 标签的选项中添加填充。
我尝试将它添加到“select”和“option”的样式属性中,它在IE中不起作用。
我能做什么?
【问题讨论】:
-
你想做什么?为什么要填充选择选项?
-
我想在选择选项的左右两边添加一些空间,让它看起来更好。
我想在 html "select" 标签的选项中添加填充。
我尝试将它添加到“select”和“option”的样式属性中,它在IE中不起作用。
我能做什么?
【问题讨论】:
很难跨浏览器设置下拉框样式。要获得任何类型的控制,您需要在 JavaScript 中编写一个替代控制。但是请注意:
【讨论】:
以下工作,在 FF3+ 和 Midori(可能还有其他 Webkit 浏览器):
select
{width: 14em;
margin: 0 1em;
text-indent: 1em;
line-height: 2em;}
select * {width: 14em;
padding: 0 1em;
text-indent: 0;
line-height: 2em;}
宽度是在不活动时在显示的select框内留出足够的空间,边距与往常一样,text-indent用于在选择框的左边界和内部文本之间假装填充. line-height 只是为了允许垂直间距。
恐怕我无法评论它在 IE 中的使用,所以如果有人可以反馈 - 或适应 - 那就太好了。
值得注意的是,无论出于何种原因,选择 (select *) 的下拉部分对我来说在 FF3 之外都不会受到影响,所以如果这是您想要回答的问题,我很抱歉没有提供任何新内容.
【讨论】:
为 SELECT 创建一个类
.listBox{
width: 200px;
...etc
}
现在为 SELECT 的选项定义 Css
.listBox option{
padding:4px;
...etc
}
在 IE 10 上测试
【讨论】:
CSS:
option{
padding: 0.5em;
}
【讨论】:
由于某种原因,我无法让它与填充或间距一起使用。我选择了一个看起来像这样的 jQuery 解决方案:
$(document).click(function(){
$('#selector option').each(function(){
$(this).html(" "+$(this).text());
});
});
【讨论】: