CSS 伪 class 用于没有文本的元素
CSS pseudo class for elements with no text
对于没有文本节点的元素,是否有一个 CSS 伪 class,如下所示:
div:nocontent {
display: none;
}
我知道有 :empty
伪 class 但我想要的东西应该忽略标签...
例如:
<div>
<p></p>
</div>
有什么解决办法吗?
编辑:
为了澄清,它可能是这样的语法:
<div class="checker">
<div class="somemarkupcontainerthatcomesfromthesystemandcantberemoved"></div>
</div>
然后像这样隐藏整个东西(这将是最佳选择):
.checker:nocontent {
display: none;
}
是的,empty
检查节点是否为空(因此没有文本也没有子节点)。
没有 CSS-only 选项适合您的目的。
如果你想定位你的 div
,你需要一个 parent 选择器,它(还)不存在,所以要解决这个问题需要一个脚本。
正如 Hitmands, check this post 对脚本示例的建议。
关于脚本,还有服务器端方法,其中替换脚本可以在将结果发送到客户端之前解析出空标签。
如果你想定位你的 p
,如果你的 p
是空的并且是 div
的 child,你可以这样做。
div {
border: 2px solid red;
min-height: 20px;
}
p {
border: 2px solid blue;
height: 20px;
}
div:not(:empty) p:empty {
display: none;
}
<div>
<p></p>
</div>
<br />
<div>
<p>Hey</p>
</div>
对于没有文本节点的元素,是否有一个 CSS 伪 class,如下所示:
div:nocontent {
display: none;
}
我知道有 :empty
伪 class 但我想要的东西应该忽略标签...
例如:
<div>
<p></p>
</div>
有什么解决办法吗?
编辑:
为了澄清,它可能是这样的语法:
<div class="checker">
<div class="somemarkupcontainerthatcomesfromthesystemandcantberemoved"></div>
</div>
然后像这样隐藏整个东西(这将是最佳选择):
.checker:nocontent {
display: none;
}
是的,empty
检查节点是否为空(因此没有文本也没有子节点)。
没有 CSS-only 选项适合您的目的。
如果你想定位你的 div
,你需要一个 parent 选择器,它(还)不存在,所以要解决这个问题需要一个脚本。
正如 Hitmands, check this post 对脚本示例的建议。
关于脚本,还有服务器端方法,其中替换脚本可以在将结果发送到客户端之前解析出空标签。
如果你想定位你的 p
,如果你的 p
是空的并且是 div
的 child,你可以这样做。
div {
border: 2px solid red;
min-height: 20px;
}
p {
border: 2px solid blue;
height: 20px;
}
div:not(:empty) p:empty {
display: none;
}
<div>
<p></p>
</div>
<br />
<div>
<p>Hey</p>
</div>