Html :not()伪类是否支持父元素?
在CSS中,是否可以将一个元素作为目标,然后基于DOM上方的父包装器元素排除该元素的实例 例如: HTMLHtml :not()伪类是否支持父元素?,html,css,css-selectors,Html,Css,Css Selectors,在CSS中,是否可以将一个元素作为目标,然后基于DOM上方的父包装器元素排除该元素的实例 例如: HTML <div class="wrap"> <ul> <li>link</li> <li>link</li> <li>link</li> </ul> </div> <ul> <li
<div class="wrap">
<ul>
<li>link</li>
<li>link</li>
<li>link</li>
</ul>
</div>
<ul>
<li>link</li>
<li>link</li>
<li>link</li>
</ul>
因此,在本例中,我想基于父包装器排除第一系列
标记。这可以通过CSS实现吗?(我的意思不是只针对.wrap li
并在那里应用所需的样式,就像我必须排除的情况一样)
在CSS中,是否可以将一个元素作为目标,然后基于DOM上方的父包装器元素排除该元素的实例
不,不是你尝试的方式:
li:not(.wrap li)
但是,您可以使用一种更简单的方法来设置所有
元素的样式,然后使用wrap
类名专门设置那些作为祖先后代的元素的样式:
li {
/* generic styles for <li> elements */
}
.wrap li {
/* specific styles for <li> elements that are
descendants of elements with a class of '.wrap' */
}
- 链接
- 链接
- 链接
- 链接
- 链接
- 链接
在CSS中,是否可以将一个元素作为目标,然后基于DOM上方的父包装器元素排除该元素的实例
不,不是你尝试的方式:
li:not(.wrap li)
但是,您可以使用一种更简单的方法来设置所有
元素的样式,然后使用wrap
类名专门设置那些作为祖先后代的元素的样式:
li {
/* generic styles for <li> elements */
}
.wrap li {
/* specific styles for <li> elements that are
descendants of elements with a class of '.wrap' */
}
- 链接
- 链接
- 链接
- 链接
- 链接
- 链接
这很复杂。为什么不把所有的li
s作为目标,让它们变成蓝色呢。然后瞄准。包裹li
,并使其变为红色?这很复杂。为什么不把所有的li
s作为目标,让它们变成蓝色呢。然后瞄准。包裹li
,并使其变为红色?对于任何想知道的人来说,在\.wrap
中转义句点真正做的是将其从类选择器转换为类型选择器。由于一种类型的元素不能是另一种,这使得div:not(\.wrap)
类似于div:not(p)
,即所有div元素的保证匹配,尽管如此。class属性将从等式中完全删除。如果将第二个ul包装在它自己的div中,选择器将匹配所有li元素。对于想知道在\.wrap中逃过句点的人来说,真正做的是将它从类选择器转换为类型选择器。由于一种类型的元素不能是另一种,这使得div:not(\.wrap)
类似于div:not(p)
,即所有div元素的保证匹配,尽管如此。class属性将从等式中完全删除。如果将第二个ul包装在它自己的div中,那么选择器将匹配所有li元素。