Sass和Less
Sass和Less都属于CSS预处理器,CSS 预处理器定义了一种新的语言,其基本思想是,用一种专门的编程语言,为 CSS 增加了一些编程的特性,如:变量、语句、函数、继承等概念。将 CSS 作为目标生成文件,然后开发者就只要使用这种语言进行CSS的编码工作。
官网地址: http://lesscss.org/
VSCode插件:Easy LESS
官网地址: https://sass-lang.com/
VSCode插件:Easy Sass
Sass
在Sass和Less文件夹中新建一个style2.scss文件
输入样式,会自动转换生成style2.css文件和压缩文件style2.min.css
1.注释
2.变量
| $number:123px; .box2{ width:$number; height:$number; }
|
3.插值
| $number:123px; $key:margin; $i:2; .box#{$i}{ width:$number; height:$number; #{$key}:auto; }
|
4.作用域
高输出123px;宽输出456px;有顺序要求
| $number:123px; .box3 { height: $number; $number:456px; width: $number; }
|
5.选择器嵌套
| ul{ list-style: none; li{ float:left; div{margin: 10px;} p{margin: 20px;} } }
|
6.伪类嵌套
| ul{ list-style: none; li{ float:left; div{margin: 10px;} p{margin: 20px;} } &:hover{ color:red } }
|
7.属性嵌套
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| ul{ list-style: none; li{ float:left; div{margin: 10px;} p{margin: 20px;} } &:hover{ color:red; font:{ size:10px; weight:bold; family:宋体 } } }
|
8.运算
| $num:100px; .box4{ width:$num*3; height: $num+10px; font:20px / 1.5; padding:(20px / 1.5); color:#010203 * 2;//颜色也能进行运算 }
|
9.函数
| @function sum($n,$m){ @return $n + $m; } .box5{ width:round(3.4px); height: percentage(0.2); margin: random(); padding: sqrt(25%); font-size: sum(4px,5px); }
|
10.混入
| @mixin show { display: inline; } @mixin hide($color) { display: block; color: $color; } .box6{ width: 100px; @include show; @include hide(red) }
|
11.无命名空间
12.继承
继承和混入很像,只是最后生成的代码是分开,还是分组的形式
| %line{ display: inline; } .box7{ @extend %line; } .box8{ @extend %line; }
|
13.合并
| $background:( a:url(a.png), b:url(b.png) ); $transform:( a:scale(2), b:rotate(30deg) ); .box9{ background: map-values($background); transform:zip(map-values($transform)...); }
|
14.媒体查询
| .box10{ width:100px; @media all and (min-width:768px) { width:600px; } @media all and (min-width:1440px) { width:900px; } }
|
15.条件
| $count:3; .box11{ @if($count > 4){ width:100px + $count; } @else{ width: 10px + $count; } }
|
16.循环
| @for $i from 0 through 2{ .box-#{$i}{ width: 100px + $i; } }
|
17.导入
在Sass和Less中新建一个文件reset.scss
| *{margin: 0;padding: 0;} img{display: block;}
|
在Sass和Less\style2.scss中引入reset.scss
Less
在Sass和Less文件夹中新建一个style.less文件
输入样式,会自动转换生成style.css文件
1.注释
2.变量
| @number:123px; .box2{ width:@number; height:@number; }
|
3.插值
| @number:123px; @key:margin; @i:2; .box@{i}{ width:@number; height:@number; @{key}:auto; }
|
4.作用域
宽高输出的都是456px;作用域有就近原则,局部变量优先找同区块的
| @number:123px; .box3 { height:@number; @number:456px; width:@number; }
|
5.选择器嵌套
| ul{ list-style: none; li{ float:left; div{margin: 10px;} p{margin: 20px;} } }
|
6.伪类嵌套
| ul{ list-style: none; li{ float:left; div{margin: 10px;} p{margin: 20px;} } &:hover{ color:red } }
|
7.无属性嵌套
8.运算
| @num:100px; .box4{ width:@num*3; height: @num+10em; margin: 10em+@num; font:20px / 1.5; padding:(20px / 1.5); padding:~'20px / 1.5'; color:#010203 * 2;//颜色也能进行 }
|
9.函数
| .box5{ width:round(3.4px); height: percentage(0.2); margin: random(); padding: sqrt(25%); }
|
10.混入
| .show{ display: block; } .hide(@color){ display: inline; } .box6{ width: 100px; .show; .hide(blue); }
|
11.命名空间
| #nm(){ .show{display: inline-block;} } .box7{ #nm.show; }
|
12.继承
| .line{ display: inline; } .box7{ &:extend(.line); } .box8{ &:extend(.line); }
|
13.合并
| .box9{ background+: url(a.png); background+: url(b.png); transform+_: scale(2); transform+_: rotate(30deg); }
|
14.媒体查询
| .box10{ width:100px; @media all and (min-width:768px) { width:600px; } @media all and (min-width:1440px) { width:900px; } }
|
15.条件
| @count:5; .get(@cn) when(@cn > 4){ width: 100px + @cn; } .get(@cn) when (@cn < 4){ width: 10px + @cn; } .box11{ .get(@count) }
|
16.循环
| @count2:0; .get2(@cn) when (@cn<3){ .get2((@cn+1)); .box-@{cn}{ width: 100px + @cn; } } .get2(@count2);
|
17.导入
在Sass和Less中新建一个文件reset.less
在Sass和Less\style.less中引入reset.less