CSS :not() with [attribute*=value] 选择器无法正常工作
CSS :not() with [attribute*=value] selector not works properly
我正在为我的 <li>
元素使用 [class*="menu-class-"]:not(.menu-class-2)
,它工作正常。问题是当我想指向 <li>
、[class*="menu-class-"]:not(.menu-class-2) a
内的 <a>
标签时。由于某种原因,它不起作用。
CSS:
.nav-menu .menu-class > .sub-menu li[class*="menu-class-"]:not(.menu-class-2) {
display: table-cell;
}
.nav-menu .menu-class > .sub-menu li[class*="menu-class-"]:not(.menu-class-2) a {
text-transform: uppercase;
}
HTML
<ul class="nav-menu" id="menu-main-navigation">
<li class="menu-class">
<a href="#12">Nav 1</a>
<ul class="sub-menu">
<li class="menu-class-3">
<a href="#12">Nav 2</a>
<ul class="sub-menu">
<li class="menu-class-2"><a href="#2">Anchor, it should be lowercase</a></li>
</ul>
</li>
</ul>
</li>
</ul>
问题是<li class="menu-class-2">
里面的<a>
是大写的,但应该是小写的,因为我没有为这个元素添加任何属性。 <a>
(<li class="menu-class-2">
) 的容器没有得到 display:table-cell
属性,所以它可以正常工作。
JSFiddle link:http://jsfiddle.net/qnzos5t4/3/
原因是因为你确实有一个不是.menu-class-2
的li:
<ul class="nav-menu" id="menu-main-navigation">
<li class="menu-class">
<a href="#12">Nav 1</a>
<ul class="sub-menu">
<li class="menu-class-3"> <!-- THIS ONE HERE -->
<a href="#12">Nav 2</a>
<ul class="sub-menu">
<li class="menu-class-2"><a href="#2">Anchor, it should be lowercase</a></li>
</ul>
</li>
</ul>
</li>
</ul>
由于您的 css 规则使用空格 select li 之后的锚点,它的每个 <a>
后代都将是大写。您需要使用 child select 或:
.nav-menu .menu-class > .sub-menu li[class*="menu-class-"]:not(.menu-class-2) > a {
我正在为我的 <li>
元素使用 [class*="menu-class-"]:not(.menu-class-2)
,它工作正常。问题是当我想指向 <li>
、[class*="menu-class-"]:not(.menu-class-2) a
内的 <a>
标签时。由于某种原因,它不起作用。
CSS:
.nav-menu .menu-class > .sub-menu li[class*="menu-class-"]:not(.menu-class-2) {
display: table-cell;
}
.nav-menu .menu-class > .sub-menu li[class*="menu-class-"]:not(.menu-class-2) a {
text-transform: uppercase;
}
HTML
<ul class="nav-menu" id="menu-main-navigation">
<li class="menu-class">
<a href="#12">Nav 1</a>
<ul class="sub-menu">
<li class="menu-class-3">
<a href="#12">Nav 2</a>
<ul class="sub-menu">
<li class="menu-class-2"><a href="#2">Anchor, it should be lowercase</a></li>
</ul>
</li>
</ul>
</li>
</ul>
问题是<li class="menu-class-2">
里面的<a>
是大写的,但应该是小写的,因为我没有为这个元素添加任何属性。 <a>
(<li class="menu-class-2">
) 的容器没有得到 display:table-cell
属性,所以它可以正常工作。
JSFiddle link:http://jsfiddle.net/qnzos5t4/3/
原因是因为你确实有一个不是.menu-class-2
的li:
<ul class="nav-menu" id="menu-main-navigation">
<li class="menu-class">
<a href="#12">Nav 1</a>
<ul class="sub-menu">
<li class="menu-class-3"> <!-- THIS ONE HERE -->
<a href="#12">Nav 2</a>
<ul class="sub-menu">
<li class="menu-class-2"><a href="#2">Anchor, it should be lowercase</a></li>
</ul>
</li>
</ul>
</li>
</ul>
由于您的 css 规则使用空格 select li 之后的锚点,它的每个 <a>
后代都将是大写。您需要使用 child select 或:
.nav-menu .menu-class > .sub-menu li[class*="menu-class-"]:not(.menu-class-2) > a {