sass文件的后缀名 ?
xxx.sass xxx.scss
把这种浏览器不认识的文件 , 转成浏览器认识的文件
.sass | .scss -> .css
怎么转换?
1.用工具 gulp工具 webpack工具 2.sass官网自带的工具 3.网上有很多第三方的工具 koala(考拉) 4.vsCode有插件 (方便学习) Easy Sass
官网
https://sass-lang.com https://www.sass.hk
.sass -> 语法类似于python
body font-size:16px ul list-style:none.scss -> 语法类似于css (推荐)
body{font-size:16px} ul{list-style:none}1.注释
// 不会被编译 /* */ 会被编译
2.变量
$num : 100px; .box1{ width:$num;} .box2{ width:$num;} .box3{ width:$num;} $num: 150; $cent: %; .box1{ width:$num + $cent;}插值,可以让属性做成变量的形式
$foo : width; .box1{ #{foo}:100px;} $foo : width; $num : 3; .box#{$num}{ #{$foo}:100px;}作用域 :就近原则,要注意查找的顺序
$num : 100px; .box{ height: $num; $num :200px; width: $num; }嵌套
div{} div ul{} div ul li{} div ul li p{} div{ ul{ li{ p{ } } } } div{ background: red; ul{ list-style:none; li{ float:left; p{ font-size:16px; } span{ color: blue; } } } } //在嵌套的时候, 添加一个&符号, 可以忽略空格 div{ &:hover{ background: red; } &.box{ width : 100px; } } div{ font-size: 10px; font-weight: bold; font-family : '宋体'; } div{ font:{ size: 20px; weight: bold; family: '宋体' } }如果计算的值都有单位是不能计算的 /: 比较特殊, css本身可能会用到这个斜线, 所以要做除法的时候,可以用()括起来来表示除法计算
$num : 100px; div{ width: $num +20px; height: $num *2px; margin : ($num / 2)px; font: 30px /2 border-radius : 20px / 30px; background-clip : border-box; background-origin : border-box; }计算颜色
$num : #100100; div{ color : $num * 3; }函数 round() percentage() random()
div{ width: round(3.22px); height: percentage(0.2); margin: random(); color: rgb( random()*255,random()*255,random()*255 ) }内置函数
自定义函数
@function sum( $a , $b){ @returm $a + $b ; } div{ width : sum(4,5) + px; }混入
@mixin hide{ display : none; color : red; } .box1{ width : 100px; @include hide; } .box2{ @include hide; } @mixin hide($color){ display : none; color : $color; } .box1{ @include hide(red) } .box2{ @include hide(yellow) }混入不会做群组 , 继承会编译成群组
继承
%叫做占位符, 不会渲染 继承不能传参
%hide{ display : none; } .box1{ @extend %hide; } .box2{ @extend %hide; }合并
div{ background : url('a.jpg'), url('b.jpg'); transform : scale(1.5) rotate(360deg); } $background: ( a: url(1.png), b: url(2.png) ); div { background : map-values($background); } $a : url(1.png); $b : url(2.png); div{ background : $a $b; }循环
@for $i from 0 through 4{ .box{ width : $i +px; } }@import ‘./xxx.scss’;