来自:Sass。
-
变量
、方法
和引用
必须在使用前定义,继承
不需要提前定义;声明相同内容不会报错,只会用最后一次声明覆盖之前声明。 -
变量以
$
开头-
正常使用
$name: red; a { color: $name; }
-
变量用于选择器、属性名或不被计算的基本CSS时,使用时要
#{}
嵌套$
$name: name; $attr: color; $font-size: 12px; $line-height: 20px; a.#{$name} { #{$attr}: #fff; font: #{$font-size}/#{$line-height} sans-serif; }
变量有命名空间:全局、局部。
-
-
嵌套,引用父级
&
-
正常使用
.name { color: #fff; span { color: #fff; } &:hover { color: #fff; } &_suffix { color: #fff; } }
-
嵌套,命名空间
:
a { color: #f00; span { color: red; } font: { weight: bold; family: fantasy; } }
-
-
@include
引入@mixin
-
不带参数
@mixin a { color: red; } @mixin b { .name2 { @include a; } } .name1 { @include b; }
-
带参数
@mixin c($para1,$para2: 5px) { color: $para1; font-size: $para2; } .name3 { @include c(#fff); } .name4 { @include c(#fff, 10px); }
-
参数数量不定
@mixin d($para...) { box-shadow: $para; } .name5 { @include d(0 4px 5px #666, 2px 6px 10px #999); }
-
使用
&
@mixin d($para) { font-size: $para; [data-dpr="2"] & { font-size: $para * 2; } } a { @include d(10px); } /* a { font-size: 10px } [data-dpr="2"] a { font-size: 20px } */
-
-
继承
@extend
查找所有满足
@extend
后的选择器的内容,把此选择器替换成使用继承的选择器。-
正常情况
.clearfix { *zoom: 1; } .clearfix:after { content: ''; } .name { @extend .clearfix; }
-
仅作为被继承,不编译自身
%
a%name span { color: #fff; } .abc { @extend %name; }
-
-
引入文件
@import
@import "../css/1.css"; // 写入 @import url(../css/1.css); @import "../scss/1.scss"; // 写入 1.scss 文件内容
-
算术
+
-
*
/
/
需要用小括号包围运算(在@return
最外层不用)。@function func() { @return 20px / 2; } a { color: #112233 + #aabbcc; // #bbddff font-size: 20 + px; // 20px width: (20px / 2); // 10px height: func(); // 10px line-height: (20px / 2px); // 10 }
-
注释
// 不出现在.css /* 出现在.css */
有中文注释时,要在.scss文件顶部增加
@charset "utf-8";
,否则编译报错。 -
方法
@function
@function func($para) { @return $para * 2 + rem; } .name { font-size: func(10); }
-
unit()
返回单位unit(100); // "" unit(100px); // "px" unit(3em); // "em" unit(3rem); // "rem" unit(3vw); // "vw" unit(3vh); // "vh"
-
unitless()
是否没有单位unitless(100); // true unitless(100px); // false
-
@if
@for
@each
@while
e.g.
@for $i from 5000 through 5999 { .s#{$i} { width: $i * 1%; } }