与直接后代的css表现

时间:2017-09-25 22:21:43

标签: css css3

我搜索过,但我没有得到具体答案。

我会问一个简单的问题

这样做更有效:

body > html > section > div.class1,
body > html > section > table > tbody > tr > td > div.class1 
{
    background-color : red;
}

或者这个:

div.class1 {
    background-color: red;
}

2 个答案:

答案 0 :(得分:4)

浏览器将检查并转换您提供给它们的每个代码(包括HTML和CSS),对于每个选择器,浏览器将属性设置为正确的HTML标记。对于非常小的网站,它不会影响很多,但对于像亚马逊这样拥有超过100万行代码的大型网站,它会影响很多性能。

我认为这是一个很好的例子:https://www.html5rocks.com/en/tutorials/internals/howbrowserswork/#Main_flow_examples

答案 1 :(得分:2)

特异性越低越快。每个选择器都是循环的另一个运行。规则  在3个选择器之后,深度穿孔将开始受到影响。

https://csswizardry.com/2011/09/writing-efficient-css-selectors/

另请注意,well perf是有问题的,当您指定太深时,真正的性能打击。我保证长期维护成为真正的问题。再深入3个选择器也是一个很好的经验法则。

最后,如果您需要有关css结构/架构的帮助,请尝试:

1- http://getbem.com/

2- https://www.xfive.co/blog/itcss-scalable-maintainable-css-architecture/