本文共 4704 字,大约阅读时间需要 15 分钟。
sass : css预编译框架。(less)
https://www.sass.hk/ 世界上最成熟、最稳定、最强大的专业级CSS扩展语言! 结构页面中依然要引入css,但css是依靠sass框架编译出来的。 sass基于Ruby语言开发而成,因此安装sass前需要安装Ruby。(注:mac下自带Ruby无需在安装Ruby!)ruby提供了写命令窗口:start command prompt with ruby 类似于cmd
一,定义变量:必须以$符号开头,后面紧跟变量名,变量名和变量值之间使用冒号分隔。
1 变量的作用:
普通变量
*{ margin: 0; padding: 0;}$box_w:1000px;$box_h:100px;$n:none;$selector:box_1;$color:#abcdef;body{ width: $box_w; height: $box_h; background: $color;}.boss{ width: 100%;}.box{ width: $box_w - 500; height: $box_h + 500; background: $color+#cccccc; float: left;}
特殊变量:必须使用#{}调用此变量
.#{ $selector}{ width: $box_w - 500; height: $box_h + 500; background: red; float: left;}
2.注释
3.sass选择器的嵌套-方便维护css
.box_2{ width: 600px; height: 600px; background: pink; margin: 0 auto; ul{ width: 600px; height: 300px; background: skyblue; li{ width: 58px; height: 30px; border: 1px solid red; &:hover{ background: #FFF; } float: left; list-style: none; } }}
4:sass-mixin:混合
$mg:0 auto;@mixin borderstyle($width:1px,$style:solid,$color:red){ border:$width $style $color;}.box_3{ width: 200px; height: 200px; background: pink; @include borderstyle(10px,solid,red); margin: 0 auto;}@mixin opacityvalue($value:0.5) { opacity: $value; filter: alpha(opacity=$value*100);}.box_4{ width: 600px; height: 600px; margin: 0 auto; background: red; @include opacityvalue(0.5)}@mixin ellipse($w:300px,$h:30px){ width: $w; height: $h; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;}.box_5{ @include ellipse(); border:1px solid red; margin: 0 auto;}
5.sass继承
.clearfix{ content: "\20"; clear: both; display: block; overflow: hidden; visibility: hidden;}.clearfix a{ text-decoration: none;}.box_6{ @extend .clearfix;}
占位继承–前面的符号为% 占位继承的选择器不会显示在编译后的css中
%zw_qf{ //占位_清浮 content: "\20"; clear: both; display: block; overflow: hidden; visibility: hidden;}.box_7{ @extend %zw_qf;}%boxsiz{ width: 300px; height: 300px; background: goldenrod;}.box_8{ @extend %boxsiz; margin: $mg;}
6.sass-导入(局部文件)
sass局部文件将我们网页分割成更小的部分,进行单独编写,方便维护,通过@import哪里调用,加载到哪里。@import "_header.scss";@import "footer";//可以省略前面的下滑线和扩展名。
7. if语句
@if 3>2 { .box{ width: 200px; height: 200px; };}@else{ .box{ width: 300px; height: 600px; };}$box_width:100px;@if $box_width>200 { .box_1{ width: 200px; height: 300px; } }@else{ .box_1{ width:600px; height: 600px; background:red; } }
8.@for语句
@for $num from 1 to 10{ //$num:1-9 不包含最后一个 .box_9_#{ $num}{ width: $num*100px; }}@for $num from 1 through 10{ //$num:1-10 包含最后一个 .box_10_#{ $num}{ width: $num*100px; }}
9.@each语句
@each $var in zhangsan,lisi,wanwu,zhaoliu { .#{ $var}-icon{ background-image: url('/image/#{$var}.png'); }}
10.函数
@function fn($num:100px){ @return $num;}.footer{ width: fn(1000px); height: fn(600px); width:ceil(3.1415729px); width: floor(33.1415729px);}
转载地址:http://bgkgn.baihongyu.com/