css - 是否有 CSS "haschildren"选择器?

标签 css

<分区>

Possible Duplicate:
Is there a CSS parent selector?

是否有仅当子元素存在时我才可以使用的 css 选择器?

考虑:

<div> <ul> <li></li> </ul> </div>

我要申请display:none仅当它没有至少一个 child 时才分配给 div <li>元素。

我可以使用任何选择器来做到这一点吗?

最佳答案

有点像 :empty 但它是有限的。

示例:http://jsfiddle.net/Ky4dA/3/

即使是文本节点也会导致父节点不被视为空,因此 DIV 内的 UL 会阻止 DIV 匹配。

<h1>Original</h1>
<div><ul><li>An item</li></ul></div>

<h1>No Children - Match</h1>
<div></div>

<h1>Has a Child - No Match</h1>
<div><ul></ul></div>

<h1>Has Text - No Match</h1>
<div>text</div>

DIV {
 background-color: red;
 height: 20px;    
}

DIV:empty {
 background-color: green;
}

引用:http://www.w3.org/TR/selectors/#empty-pseudo

如果你走脚本路线:

// pure JS solution
​var divs = document.getElementsByTagName("div");
for( var i = 0; i < divs.length; i++ ){
    if( divs[i].childNodes.length == 0 ){ // or whatever condition makes sense
        divs[i].style.display = "none";
    }        
}​

当然,jQuery 使这样的任务变得更容易,但这一任务不足以包含整个库。

关于css - 是否有 CSS "haschildren"选择器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12206935/

相关文章:

javascript - C# 替换字符串的动态内容

html - 悬停仅在 flexbox 中的文本下划线

html - 为什么溢出:hidden not work in a <td>?

javascript - 通过js添加和删除表单不起作用

javascript - anchor 标记不适用于图像 http ://www. smoothdivscroll.com/demo.html

CSS 背景图片 css/html

html - h1 标签边距的行为

html - 在表中动态调整图像大小

CSS 多输入 [类型] 选择器

javascript - 停止散焦