在HTML元素中有很多类是不是很糟糕?

时间:2013-04-24 07:24:04

标签: html css browser rendering

在现代HTML编码中,将一些类名添加到诸如

之类的元素中很常见
<div class="class1 class2 class3 class4 ..."
</div>

这使我们可以非常灵活地混合CSS属性,而不必为不同的类重复它们。

逻辑上,浏览器消耗更多资源来收集不同类的CSS属性以应用于相应的元素。

由于难以对此运行可靠的基准,我从理论的角度提出这个问题。想象一下,页面的大多数HTML元素都有几个类(例如10个类)。这会使页面渲染更加困难和缓慢吗?这种放缓是否合理且相当可观?

一般来说,浏览器从不同类中读取属性的常见过程是什么?

2 个答案:

答案 0 :(得分:0)

添加许多类的兴趣是为各个样式设置单独的类,而不是重复/为同一用途创建新类。

例如,如果我有一个按钮,我可以有3个类,如.btn .big .grey。如果我想创建另一个按钮,我只需要重复.btn类,并添加我的其他自定义类,如.medium.green。它被称为OOCSS(Oriented Object CSS)。

关于性能,我建议你看一下这个小例子http://www.css-101.org/descendant-selector/go_fetch_yourself.phphttp://csswizardry.com/2011/09/writing-efficient-css-selectors,你可以找到很多关于ids与类的表现的文章。

答案 1 :(得分:0)

多个类可以更轻松地向元素添加特殊效果,而无需为该元素创建全新的样式。例如,您可能希望能够快速向左或向右浮动元素。你可以用“float:left”来写两个“左”和“右”的类。并且“浮动:正确;”在他们中。然后,只要你有一个元素你需要向左浮动,你只需要将类“left”添加到它的类列表中。

我喜欢将多个类用于我希望在整个站点中保持标准的内容。例如,如果我总是希望底边距为10px的元素的底边距。通过创建一个仅包含botom-margin的类:10px;我可以在任何需要的地方添加它。

多个类的缺点

虽然主流浏览器支持它们,但旧版浏览器并不支持它们。因此,您应该确保列出的第一个类是具有该元素最具体信息的类。

当您对元素应用越来越多时,多个类也会变得非常混乱。

More...

要点:

  • 减少选择器的总数(包括与IE相关的样式:.ie7 .foo .bar)
  • 避免使用通用选择器(包括不合格的属性选择器: [类型= “URL”])
  • 页面缩放会影响某些浏览器(例如Opera)的CSS性能
  • 窗口大小会影响某些浏览器(例如Chrome)的CSS性能
  • 在某些浏览器中,页面重新加载会对CSS性能产生负面影响 (例如Opera)
  • “border-radius”和“transform”是最昂贵的属性 (至少在WebKit&amp; Opera中)
  • 基于WebKit的浏览器中的“时间轴”选项卡可以揭示总数 recalc / reflow / repaint times
  • WebKit中的选择器匹配要快得多。

http://perfectionkills.com/