1.scss与less都是css的预处理器,首先咱们的明白为何要用scss与less,由于css只是一种标记语言,其中并无函数变量之类的,因此当写复杂的样式时必然存在局限性,不灵活,而scss与less正好为css提供这些,让css能够像编程同样灵活书写样式,并且scss与还提供了一些css兼容性的处理,因此运用scss就不须要像写css时队友的语法须要作hack处理。SCSS 是 Sass 3 引入新的语法,其语法彻底兼容 CSS3,而且继承了 Sass 的强大功能。也就是说,任何标准的 CSS3 样式表都是具备相同语义的有效的 SCSS 文件。css
2.本文咱们只对scss介绍,其实less都差很少,当你使用scss语法是要用.scss后缀,使用sass语法时用.sass后缀。
3.在vue项目中的使用:vue
4. scss经常使用语法简介:node
1.自定义变量以及子元素书写:
webpack
<style lang=scss scoped> /*scss的使用:*/ /*1.自定义变量*/ $color:pink; $width:200px; $height:200px; $right:right; $num:2; .test{ background:$color; width:$width; height:$height; margin:30px auto; /*插入变量*/ border-#{$right}:2px solid blue; /*子元素的书写 选择器嵌套*/ p{ color:orange; font-size: 30px; } }
2.样式的加减乘除以及继承样式:web
.p{ background:yellowgreen; } .test2{ /*样式的加减乘除,自定义变量再使用*/ width:$num*100px; height:$num*50px; border:(1px+1px) solid orange; /*样式的继承*/ @extend .p; }
3.样式的复用:npm
/*代码的复用,至关于自定义一个函数,而且能够 传参*/ @mixin box($height){ height:$height; width:200px; border:1px solid deeppink; } .test3{ /*调用*/ @include box(200px); }
4.使用if语句:编程
/*使用if语句判断使用哪套样式,lightness是scss中的一个函数,用来判断色彩度,$color为传入的自定义参数*/ .test4{ @if lightness($color)<30%{ width:50px; height:50px; background:cyan; }@else{ width:50px; height:50px; background:yellow; } }
5.scss的三种循环:for while each:sass
/*循环语法,包括最多见的三种循环方法,for,while,each,*/ /*其中循环包含开始不包含结束量,以下不包含5*/ @for $i from 1 to 5{ .R#{$i}{ width:$i*20px; height:$i*20px; /*注意:变量带单位时不能写成($i)px;应该写:#{$i}px*/ border:#{$i}px solid olive; } }
6.scss中的函数:less
/*函数使用*/ @function double ($num){ @return $num*2 } .test5{ font-size: double(20px); color:gold; }