Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/32.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
Html :not()伪类是否支持父元素?_Html_Css_Css Selectors - Fatal编程技术网

Html :not()伪类是否支持父元素?

Html :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

在CSS中,是否可以将一个元素作为目标,然后基于DOM上方的父包装器元素排除该元素的实例

例如:

HTML

<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元素。