Sass高级用法(2)

上篇文章我们介绍了Sass的日常使用方法,今天我们来介绍Sass的高级用法,这将会颠覆你对写css的印象。

条件语句

判断:@if 和@else
当 @if 的表达式返回值是true时,则输出 {} 内的代码

div {
  @if 1 + 1 == 2 { border: 1px #ccc solid; }
  @if 5 < 3 { border: 2px #f00 solid; }
}

//编译为

div {
  border: 1px #ccc solid; 
}

@if和@else可搭配在一起使用

$type: sass;
p {
  @if $type == css { color: blue; }
  @else $type == sass { color: red; } 
}

//编译为

p { color: red; }

循环语句

@for:有两种格式,@for varfrom<start>through<end>@for v a r f r o m < s t a r t > t h r o u g h < e n d > , 或 者 @ f o r var from to 。

@for $num from 1 through 3 {
  .list-#{$num} { width: 200px * $num; }
}

//编译为

.list-1 { width: 200px; }
.list-2 { width: 400px; }
.list-3 { width: 600px; }

如果将上面的例子换为@for $num from 1 to 3会出现什么结果呢

@for $num from 1 to 3 {
  .list-#{$num} { width: 200px * $num; }
}

//编译为

.list-1 { width: 200px; }
.list-2 { width: 400px; }

我们会发现:当使用 through 时,条件范围包含 与 的值,而使用 to 时条件范围只包含 的值不包含 的值。
另外,$var 可以是任何变量; 和 必须是整数值。

@while:指令重复输出格式直到表达式返回结果为 false。

$num: 6;
@while $num > 0 {
  .list-#{$num} { width: 200px * $num; }
  $num: $num - 2;
}

//编译为

.list-6 { width: 1200px; }
.list-4 { width: 800px; }
.list-2 { width: 400px; }

@each:指令的格式是 varin<list>, v a r i n < l i s t > , var 可以是任何变量名, 是一连串的值,也就是值列表。@each 将变量 $var 作用于值列表中的每一个项目,然后输出结果。

@each $member in a, b, c, d {
  .#{$member} {
    background-image: url("/image/#{$member}.jpg");
  }
}
//编译为

.a { background-image: url("/image/a.jpg"); }
.b { background-image: url("/image/b.jpg"); }
.c { background-image: url("/image/c.jpg"); }

自定义函数

在sass中,用于可以根据自己的具体需要编写函数

@function count($n) {
  @return $n * 100;
}
div {
  width: count(5px);
}

//编译后

div { width: 500px; }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值