Css 全选择器是黑客还是标准的?

Css 全选择器是黑客还是标准的?,css,css-selectors,Css,Css Selectors,这是黑客还是w3c标准 风格: * { background: #73102a; padding:20px;} * * { background: #a6386b; } * * * { background: #3b574b; } * * * * { background: #15bf5f; } * * * * * { background: #62bf54; } 标记: <header> <menu> <li>

这是黑客还是w3c标准

风格:

* { background: #73102a; padding:20px;}
* * { background: #a6386b; }
* * * { background: #3b574b; }
* * * * { background: #15bf5f; }
* * * * * { background: #62bf54; }
标记:

<header>
    <menu>
        <li>
            <a>
                <span>Menu</span>
            </a>
        </li>
    </menu>
</header>

  • 这不是黑客行为

    *
    -表示任何东西

    **
    -表示任何元素的子元素(或grand*N-child)

    ***
    -指任何事物的子对象(或大N子对象)或任何事物的子对象(或大N子对象)

    等等

    我想使用这样的选择器不是一个好习惯。但如果说标准的话,这是完全正常的

    另外,请注意,
    *
    将包括
    html
    元素本身,但
    ***
    将不包括<代码>***
  • 也不包括
    正文
    。等等因此,他们选择的元素数量是不同的。但真正的问题是,他们选择了大量的元素(如果你的页面没有示例中那么简单的话),这会导致你的页面在浏览器中的行为效率低下。

    这不是黑客行为

    *
    -表示任何东西

    **
    -表示任何元素的子元素(或grand*N-child)

    ***
    -指任何事物的子对象(或大N子对象)或任何事物的子对象(或大N子对象)

    等等

    我想使用这样的选择器不是一个好习惯。但如果说标准的话,这是完全正常的


    另外,请注意,
    *
    将包括
    html
    元素本身,但
    ***
    将不包括<代码>***也不包括
    正文
    。等等因此,他们选择的元素数量是不同的。但真正的问题是,他们选择了大量的元素(如果你的页面不像示例中那么简单),这会导致你的页面在浏览器中的行为效率低下。

    the
    *
    aka any element selector是一个标准的CSS选择器,你可以在信息:基于关系的选择器一节中看到

    关于使用它是否是良好实践的问题,它是有争议的,并且对该问题的正确答案是,它取决于:

    • 如果您知道HTML的一部分是静态的,并且您的目标是精确地定位一个特定的元素,而您不能以另一种方式来实现它,那么使用any元素来获取兄弟元素

    • 如果您可以遵循其他更通用的方法,比如定义类或id,那么就不要使用任何元素选择器,因为在处理可能导致HTML发生更动态变化的场景时,main-envolve是进一步维护

    注意(性能)

    (…)按照通常的方式,如果使选择器更具体,则会增加其优先级

    如果使用这些技术,就不需要在文档中的这么多标记上指定class或id属性。相反,CSS起作用


    在速度非常重要的大型设计中,可以通过避免依赖于元素之间关系的复杂规则来提高样式表的效率。(…)

    *
    又名any element selector是一个标准的CSS选择器,您可以在“信息:基于关系的选择器”一节中看到这一点

    关于使用它是否是良好实践的问题,它是有争议的,并且对该问题的正确答案是,它取决于:

    • 如果您知道HTML的一部分是静态的,并且您的目标是精确地定位一个特定的元素,而您不能以另一种方式来实现它,那么使用any元素来获取兄弟元素

    • 如果您可以遵循其他更通用的方法,比如定义类或id,那么就不要使用任何元素选择器,因为在处理可能导致HTML发生更动态变化的场景时,main-envolve是进一步维护

    注意(性能)

    (…)按照通常的方式,如果使选择器更具体,则会增加其优先级

    如果使用这些技术,就不需要在文档中的这么多标记上指定class或id属性。相反,CSS起作用


    在速度非常重要的大型设计中,可以通过避免依赖于元素之间关系的复杂规则来提高样式表的效率。(…)
    *
    选择所有元素

    **
    选择任何元素的子元素

    ***
    选择作为任何元素的子元素的所有元素

    ***
    选择作为任何元素的子元素的任何元素的子元素的所有元素

    …我想你能看到这是怎么回事。它只是(任意元素)选择器和th(后代)选择器的组合(不是浏览器相关的黑客)


    我建议您不要这样做,因为您不应该选择“任何元素”、“任何元素n个级别降低”或“任何元素n个或更多级别降低”(使用
    *
    )。它是一个广泛的选择器,最好用
    header>menu>li>a>span
    *
    选择所有元素

    **
    选择任何元素的子元素

    ***
    选择作为任何元素的子元素的所有元素

    ***
    选择作为任何元素的子元素的任何元素的子元素的所有元素

    …我想你能看到这是怎么回事。它只是(任意元素)选择器和th(后代)选择器的组合(不是浏览器相关的黑客)

    我建议您不要这样做,因为您不应该选择“任何元素”、“任何元素n级别降低”或“任何元素n或更多级别降低”(使用