Css :空不';如果有';什么是空白?
试图找到一个伪类,该类的目标是Css :空不';如果有';什么是空白?,css,css-selectors,pseudo-class,Css,Css Selectors,Pseudo Class,试图找到一个伪类,该类的目标是,如下所示: <div class="nav-previous"> </div> .empty{ display:none; } if(element.innerHTML.replace(/^\s*/, "").replace(/\s*$/, "") == "") 我试过:blank和:empty,但两者都检测不到。难道这是不可能的吗 :empty确实只适用于完全空的元素
,如下所示:
<div class="nav-previous">
</div>
.empty{
display:none;
}
if(element.innerHTML.replace(/^\s*/, "").replace(/\s*$/, "") == "")
我试过:blank
和:empty
,但两者都检测不到。难道这是不可能的吗
:empty
确实只适用于完全空的元素。空白内容意味着它不是空的,一个空格或换行符就足够了。只有HTML注释被视为“无内容”
有关更多信息,请参见此处:
:空白的
选择器正在工作中,它将匹配空白,请参见此处:。但它似乎还没有浏览器支持
更新:请参阅,了解jQuery可能的解决方案。您的方法的问题在于您的容器实际上不是空的 :empty伪类表示此时没有子元素的元素 全部的就文档树而言,只有元素节点和内容 节点(如DOM文本节点、CDATA节点和实体引用) 必须将其数据长度非零视为影响 空虚 因为您有空的空格,所以这个伪类不会起作用 :blank伪类应该是正确的,因为这是它的定义: 此空白伪类匹配仅包含内容的元素 它由空格组成,但不是空的 问题是这个伪类还没有被任何浏览器实现,您可以在下面的链接中查看。因此,您需要等到它实现后才能使用此选择器 这很好地解释了你所面临的行为 这里最好的方法就是确保您的div实际上是空的,这样您的方法就可以工作了 最好是定义一个空类,如下所示:
<div class="nav-previous">
</div>
.empty{
display:none;
}
if(element.innerHTML.replace(/^\s*/, "").replace(/\s*$/, "") == "")
然后在此处添加此JS代码,它会将空类附加到您的空白项:
(function($){
$.isBlank = function(html, obj){
return $.trim(html) === "" || obj.length == 0;
};
$('div').each(function() {
if($.isBlank(
$(this).html(),
$(this).contents().filter(function() {
return (this.nodeType !== Node.COMMENT_NODE);
})
)) {
$(this).addClass('empty');
}
});
})(jQuery);
检查它是否在这里工作
没有JavaScript/jQuery实现,您就无法做到这一点。
:empty
选择器与空标记一起工作(因此其中甚至没有任何空格),或者与类似
的自动关闭标记一起工作
参考:
如果您想使用JavaScript实现,我想在这里您会找到答案:正如其他人提到的,这在CSS中还不可能实现。 但是,您可以检查JavaScript是否只有空格。这里有一个简单的JS专用解决方案,匹配的“空”div是蓝色的,而有文本的div是红色的。更新为在空div中添加一个
empty
类,这将允许您使用CSS中的选择器.empty
轻松地定位它们
仅JS的“空”比较如下所示:
<div class="nav-previous">
</div>
.empty{
display:none;
}
if(element.innerHTML.replace(/^\s*/, "").replace(/\s*$/, "") == "")
如果您使用的是jQuery,则会更容易:
if( $.trim( $(element).text() ) == "" ){
var-navs=document.queryselectoral(“.nav-previous”);
对于(i=0;i
.nav-previous{
填充:10px;
边框:1px实心#000;
}
.nav-previous.empty{
边框:5px纯绿色;
}
不是空的
我确实读了:blank
我只是不知道它还没有出来。是否有类似于:blank
的javascript解决方案?