Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Css 选择没有i子级的锚点_Css_Css Selectors - Fatal编程技术网

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");
    }
}