供参考: SCSS .extend()
关于这个问题的类似帖子: Using extend for clearfix
假设我要创建一些可以在整个项目中扩展和重用的类:
例如一个类可以是:
//common boilerplate for most of my parent divs
.scaffold
{
position: relative;
-moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box;
height: 100%;
width: 100%;
margin: 0;
padding: 0;
}
//or a typical clearfix
.group:after {
content: "";
display: table;
clear: both;
}
假设我有十几个具有不同目的和/或属性差异的类。在什么时候扩展课程对性能有害而不是有益?例如 - 如果这个类有 50 个不同类的逗号
编写 SCSS 类之一的示例
.site-header
{
@extend .group;
@extend .scaffold;
background: papayawhip;
border-bottom: 1px #ccc solid;
}
示例编译的 clearfix 可以是 CSS
.group:after, .site-header, .route-nav, .main-article, .article-header, .side-bar, .site-footer
//this could go on for a while
{
content: "";
display: table;
clear: both;
}
示例 HTML
<!DOCTYPE html>
<html lang="en">
<body>
<header class="site-header">
<nav class="route-nav">
<nav>
</header>
<article class="main-article">
<header class="article-header"></header>
</article>
<aside class="side-bar">
</aside>
<footer class="site-footer">
</footer>
</body>
</html>
我觉得这可能是编写 css 的 DRY-est 方法之一。我觉得这种方法在只写了几部分页面后会变得非常有效和成功。此外,这些类中的大多数可以通过许多项目进行改进和使用。我真的很想尝试它,但我担心从长远来看它可能会导致一些性能问题,尤其是当类开始使用伪类时,比如:after:before。
与仅添加类或编写 mixin 相比,性能会受到影响吗?有没有人有任何统计数据来备份最佳路线?