CSS - select 元素内部没有文本
CSS - select element without text inside
有什么方法可以 select 一些里面没有文字的元素吗?
什么意思:
假设我们有这样的元素
<div class="to-select"></div> <-- this is empty
<div class="to-select"><span></span></div> <-- this is not empty, but dont have text
它们都没有文本,但只有一个是空的,可以 select 与 :empty
编辑。我希望它们都被 selected,因为它们没有文本。
此外,某些元素可能只有白色 space 文本,这些文本来自制表符 html 标记等
我知道用js做起来很简单。但如果可能的话,我正在寻找 css 解决方案。我不喜欢用js来解决这种问题。
试试这个,
$(".to-select").filter(function(){
return ($(this).text().trim() == "")
})
您可以在 CSS:
中试试这个
.to-select:empty {
<<your attributes>>
}
.to-select *:empty {
<<your attributes>>
}
确实,没有用于没有文本节点子节点(或后代节点)的元素的选择器。
在第 4 级选择器中,
可能是可行的
.to-select:not(:has(:not(:empty)))
或者,to account for inter-element whitespace,
.to-select:not(:has(:not(:blank)))
但由于 :has()
可能无法在快速配置文件中完全可用,因此即使实现了选择器级别 4,您也可能无法在 CSS 中使用它。
不幸的是,使用 JS 是最好的选择。上面带有 :empty
的选择器现在可以在 jQuery 中使用,但即使 :has()
是本机实现的,对于这个特定的用例,您也只能在 document.querySelectorAll()
中使用它]充其量。
有什么方法可以 select 一些里面没有文字的元素吗?
什么意思:
假设我们有这样的元素
<div class="to-select"></div> <-- this is empty
<div class="to-select"><span></span></div> <-- this is not empty, but dont have text
它们都没有文本,但只有一个是空的,可以 select 与 :empty
编辑。我希望它们都被 selected,因为它们没有文本。
此外,某些元素可能只有白色 space 文本,这些文本来自制表符 html 标记等
我知道用js做起来很简单。但如果可能的话,我正在寻找 css 解决方案。我不喜欢用js来解决这种问题。
试试这个,
$(".to-select").filter(function(){
return ($(this).text().trim() == "")
})
您可以在 CSS:
中试试这个.to-select:empty {
<<your attributes>>
}
.to-select *:empty {
<<your attributes>>
}
确实,没有用于没有文本节点子节点(或后代节点)的元素的选择器。
在第 4 级选择器中,
可能是可行的.to-select:not(:has(:not(:empty)))
或者,to account for inter-element whitespace,
.to-select:not(:has(:not(:blank)))
但由于 :has()
可能无法在快速配置文件中完全可用,因此即使实现了选择器级别 4,您也可能无法在 CSS 中使用它。
不幸的是,使用 JS 是最好的选择。上面带有 :empty
的选择器现在可以在 jQuery 中使用,但即使 :has()
是本机实现的,对于这个特定的用例,您也只能在 document.querySelectorAll()
中使用它]充其量。