sass的优缺点
优点:css预处理器为css增加一些编程的特性,无需考虑浏览器的兼容性问题。支持嵌套、变量和逻辑等。可以让css更加简介、提高代码复用性、逻辑分明等等。
缺点:css的文件体积和复杂度不可控;增加了调试难度和成本
常用的知识点
1、注释
/* 多行 */ //单行 /*! 不会被压缩*/
2、变量 (会有作用域的限制)
$color: red; //在值的后边加global会变为全局属性
3、模板字符串
#{变量}
4、@import 引入文件
支持同时导入多个文件,使用逗号隔开即可
以下情况会导致文件仅作为普通css语句,不会导入任何Sass文件
文件拓展名是.css
文件名以http://开头
文件名是url()
@import包含media queries
5、继承 @extend
.a{ width:100px; height:100px; } .b{ @extend .a; }
6、@if的使用
p{ @if 1+1==2{ color:red; } } p{ @if 1+1==2{ color:red; }@else{ color:blue } }
7、 循环语句 @for
语法 @for $var from <start> through <end> 或 @for $var from <start> to <end>
through和to的相同点与不同点?
相同点:都包含<start>值
不同点:through包含<end>值,但to不包含<end>的值
@for $I from 1 through 3{ .item-#{$I}{ width: 2em * $i; } } //等价于 .item-1{ width:2em; } .item-2{ width:4em; } .item-3{ width:6em; }
8、循环语句 @while
语法: @while experssin
指令重复输出格式直到表达式返回结果为false。这样可以实现比@for更复杂的循环,只是很少会用到
$1: 6; @while $1>0{ .item-#{$i} { width : 2rem * $1; } $1: $1-2; //给i重新赋值 } //等价于 .item-6{ width: 12em; } .item-4{ width: 8em; } .item-2{ width: 4em; }