0

在我们的项目中,我们有基本的 css 文件,其中包含大多数常见 css 属性的类(如.p10-> padding:10pxvam-> vertical-align:middle)。

如果我在单个 DOM 中使用这些类中的许多类,是否会对性能产生任何影响?

4

2 回答 2

2

它不会导致任何性能影响(它可能比构建深度嵌套的选择器更快)。

此外,您所询问的方法甚至有它自己的名称 - atomic css,除了@Xhynk 所说的之外,它并不总是那么糟糕,因为它允许轻松定制并且广泛用于许多 CSS 库中。

于 2018-03-15T18:03:53.363 回答
1

您正在添加 7 字节的 HTML,这实际上对您的网站的影响为 0,而 CSS 处理速度又如此之快,实际上对您的网站的影响为 0。

有很多 CSS 框架使用这样的模块化方法,你的代码可能看起来像这样:

<main>
  <div class="p10 vam d_ib blk internal bigshadow"></div>
  <div class="p10 vam d_ib blk internal bigshadow"></div>
  <div class="p10_20 vam d_ib blk accent-blue internal bigshadow"></div>
</main>

.p10 { padding: 10px; }
.p10_20 { padding: 10px 20px; }
.vam { vertical-align: middle; }
.d_ib { display: inline-block; }
.internal { background: #fff; }
.blk { color: #000; }
.bigshadow { box-shadow: 0 10px 15px -8px rgba(0,0,0,.5); }

在不使用框架(或开发内部框架)的情况下,您可能需要一些模块化程度更低、更面向元素的东西:

<main>
    <div class="container"></div>
    <div class="container"></div>
    <div class="container accent"></div>
</main>

附带的 CSS:

/* This or main > div */
main .container {
    padding: 10px;
    display: inline-block;
    color: #000;
    box-shadow: 0 10px 15px -8px rgba(0,0,0,.5);
}

.container.accent {
    padding: 10px 20px;
    border: 2px solid #0095ee;
}

重申手头问题的答案,堆叠类对元素的影响实际上为零。

于 2018-03-15T17:57:45.007 回答