首页 > 过多的包含选择符(Descendant combinator)会影响css性能吗

过多的包含选择符(Descendant combinator)会影响css性能吗

用sass用了一段时间了,由于嵌套写法的存在,常常会发现我所有的样式都是在不停嵌套中,于是编译出来的css经常成了这样:

.value-top .value-top-left .price-linechart .prev2-price, .value-top .value-top-left .price-linechart .prev-price, .value-top .value-top-left .price-linechart .now-price {
        font-size: 12px;
        position: absolute;
        color: #00b65d; }
      .value-top .value-top-left .price-linechart .prev2-price {
        top: 38px;
        left: 123px; }
      .value-top .value-top-left .price-linechart .prev-price {
        top: 54px;
        left: 214px; }
      .value-top .value-top-left .price-linechart .now-price {
        top: 108px;
        left: 304px; }
      .value-top .value-top-left .price-linechart .next-price {
        font-size: 12px;
        position: absolute;
        color: #000;
        top: 200px;
        left: 170px; }
        .value-top .value-top-left .price-linechart .next-price span {
          color: #ff4f37; }
          
          

这么写会有性能问题吗


嵌套太深会造成一下问题:

  1. 效率低

  2. 复用率低

  3. 修改麻烦

    建议嵌套不要超过3层,如果超过,就最好重构下html结构,合理的做嵌套


影响是有的, 只是现代浏览器不像IE6那个时代, 已经有了一定的优化, 还不至于慢到离谱(当然这个仍然取决于你的页面数量和实际的css选择器的复杂程度)

https://benfrain.com/css-performance-revisited-selectors-bloat-expensive-styles/
国外一人写的选择器性能测试的文章, 可以看看

【热门文章】
【热门文章】