Css 选择没有i子级的锚点
是否可以选择子项不是Css 选择没有i子级的锚点,css,css-selectors,Css,Css Selectors,是否可以选择子项不是i的标记 例如: <a href="#"> <!--select this--> Link! </a> <a href="#"> <!--but not this--> <i class="material-icons">menu</i> </a> 我尝试了a:not(>I)和a:empty,但没有成功。定义两种样式。一个用于a,另一个用于a i。似乎没有其他办
i
的标记
例如:
<a href="#"> <!--select this-->
Link!
</a>
<a href="#"> <!--but not this-->
<i class="material-icons">menu</i>
</a>
我尝试了
a:not(>I)
和a:empty
,但没有成功。定义两种样式。一个用于a
,另一个用于a i
。似乎没有其他办法,因为:not
不允许组合
或者使用jQuery:
$("a:not(:has(>i))")
最不幸的是,事实并非如此,但仅此而已。 你需要一点js
var links = document.querySelectorAll("a"),
i = 0, ii = links.length;
for (i; i,ii; i++) {
if(!links[i].querySelector("i")){
links[i].classList.add("without-i");
}
}
问题是,使用该方法,所选元素将是
i
标记,而不是锚定。在我的例子中,我需要给锚添加一个填充,所以这绝对是一个问题:(抱歉,Malork:(要么是JS,要么做一些魔术,比如:a:padding;a>I negative-padding-on-I
:(我一直在搜索,就是这样,没有办法。谢谢你链接这个提议:)
var links = document.querySelectorAll("a"),
i = 0, ii = links.length;
for (i; i,ii; i++) {
if(!links[i].querySelector("i")){
links[i].classList.add("without-i");
}
}