CSS / HTML:ul:空选择器与空列表不匹配

时间:2013-06-09 20:55:41

标签: html css css-selectors

我有以下CSS和HTML代码:

<ul id="actions" class="frame frame-yellowglow">
</ul>

CSS

ul#actions {
    clear: left;    
    width: calc(60% - 2px);
    margin: 5px auto;
    padding: 10px 0px;
    text-align: center;
}
ul#actions:empty {
    margin: 0;
    padding: 0;
}
ul#actions li {
    display: inline;
    margin: 0px 3px;
}
.frame {
    border-radius: 5px; 
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
    border: 1px #dddddd solid;
}
.frame:empty {
    border: none;
    box-shadow: none;
}
.frame-yellowglow {
    border: 1px #D4B700 solid;
    box-shadow: 0 0 4px #D4B700;
}

ul填充了可执行某些操作的图标。但是,ul与空选择器不匹配,因此仍然呈现;边框,填充,阴影等等。

[编辑:澄清一点,我在这里谈论尚未添加元素的时间。即使内部没有任何内容,它仍然与:empty选择器不匹配。 ]

为什么会这样?

1 个答案:

答案 0 :(得分:19)

根据 MDN

  

:empty伪类表示任何没有子元素的元素。仅考虑元素节点和文本(包括空格)。

您的“空”ul可能包含空格文本节点。