Sass基本用法
一、概述
本质还是css,就是多了一些指令,让项目在维护的时候更方便。
二、开始
1. 变量
使用字符$
来创建变量。
/*css用法*/
div {
color: red;
}
p {
color: red;
}
/*sass用法*/
$color: red;
div {
color: $color;
}
p {
color: $color;
}
2. css嵌套
/*css用法*/
nav ul li{
color: red;
}
/*sass用法*/
nav{
ul{
li{
color: red;
}
}
}
3. 复用
就像是函数一样,定义一个函数,在需要的地方调用它,如果是对于某个样式需要加浏览器前缀就很适合用。
使用关键字@mixin
创建,使用关键字@include
调用。
/*css用法*/
div {
-webkit-box-shadow: 0px 0px 4px #fff;
-moz-box-shadow: 0px 0px 4px #fff;
-ms-box-shadow: 0px 0px 4px #fff;
box-shadow: 0px 0px 4px #fff;
}
/*sass用法*/
/*定义*/
@mixin box-shadow($x, $y, $blur, $c){
-webkit-box-shadow: $x $y $blur $c;
-moz-box-shadow: $x $y $blur $c;
-ms-box-shadow: $x $y $blur $c;
box-shadow: $x $y $blur $c;
}
div {
/*调用*/
@include box-shadow(0px, 0px, 4px, #fff);
}
4. if语句
就是判断,不同的条件下显示不同的样式。使用关键字:@if
、@else if
、@else
/*css用法*/
div{
background-color: red;
}
/*sass用法*/
@mixin set-color($val){
@if $val == 1{
background-color: red;
}@else if $val == 2{
background-color: blue;
}@else{
background-color: green;
}
}
div{
@include set-color(1);
}
5. for语句
循环。
两种语法:
@for $i from 开始值 through 结束值
@for $i from 开始值 to 结束值
区别就是through
包括结束值,to
不包括结束值。
/*css用法*/
.col-1 {
width: 8.33333%;
}
.col-2 {
width: 16.66667%;
}
...
.col-12 {
width: 100%;
}
/*sass用法*/
@for $i from 1 through 12 {
.col-#{$i} { width: 100%/12 * $i; }
}
注:
#{$i}
和js的模板字符串类似,即是将变量i和文本组合成字符串的语法。
6. each遍历
遍历。
语法: @each $i in 列表
/*css用法*/
.blue-text {
color: blue;
}
.red-text {
color: red;
}
.green-text {
color: green;
}
/*sass用法*/
@each $color in blue, red, green {
.#{$color}-text {color: $color;}
}
7. while循环
使用关键字: @while
/*css用法*/
.text-1{
font-size: 15px;
}
.text-2{
font-size: 30px;
}
...
.text-5{
font-size: 75px;
}
/*sass用法*/
$x: 1;
@while $x <= 5 {
.text-#{$x} {font-size: 15px * $x}
$x: $x + 1;
}
8. partials——模块化
partials是一个包含css代码的文件,你可以在别的文件中引用它。partials一般以下划线_
开头。
<!-- main.scss 文件:引入_variables.scss -->
@import variables
注: 引入的时候就不需要下划线了。
9. 扩展
类似于继承,比如你有一个div和一个p,其中p包含div所有的样式,并且它自己还有新的样式,那应该怎么做呢,就可以使用继承,关键字为: @extend
/*css用法*/
div{
background-color: red;
height: 70px;
border: 2px solid green;
}
p{
background-color: red;
height: 70px;
border: 2px solid green;
width: 150px;
font-size: 2em;
}
/*sassy用法*/
div{
background-color: red;
height: 70px;
border: 2px solid green;
}
p{
@extend div;
width: 150px;
font-size: 2em;
}
来自: freecodecamp 可以去上面练习一下!
转载自:https://juejin.cn/post/7267728538567213093