混合器
如果你的整个网站中有几处小小的样式类似,那么使用变量来统一处理这种情况是非常不错的选择。但是当你的样式变得越来越复杂,你需要大段大段的重用样式的代码,独立的变量就没办法应付这种情况了。你可以通过 sass 的混合器实现大段样式的重用。
混合器使用 @mixin
标识符定义。看上去很像 css 的其他 @
标识符,比如说 @media
或者 @font-face
。这个标识符给一大段样式赋予一个名字,这样你就可以轻易地通过引用这个名字重用这段样式。下边的这段 sass 代码,定义了一个非常简单的混合器,目的是添加跨浏览器的圆角边框。
@mixin rounded-corners {
border-radius: 5px;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
}
然后就可以在你的样式表中通过 @include
来使用这个混合器,放在你希望的任何地方。@include
调用会把混合器中的所有样式提取出来放在 @include
被调用的地方。如果像下边这样写:
// scss
.notice {
background-color: green;
border: 2px solid #00aa00;
@include rounded-corners;
}
// css
.notice {
background-color: green;
border: 2px solid #00aa00;
border-radius: 5px;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
}
这一节将介绍使用混合器来避免重复。通过使用参数,你可以使用混合器把你样式中的通用样式抽离出来,然后轻松地在其他地方重用。实际上,混合器太好用了,一不小心你可能会过度使用。大量的重用可能会导致生成的样式表过大,导致加载缓慢。所以,首先我们将讨论混合器的使用场景,避免滥用。
混合器中的CSS规则
混合器中不仅可以包含属性,也可以包含 css 规则,包含选择器和选择器中的属性,如下代码:
@mixin no-bullets {
list-style: none;
li {
list-sty