scss版本的css预处理语言sass的快速使用手册
作者:心叶
时间:2018-04-23 13:04
sass分为二类,其中一种是SCSS(Sassy CSS),是一个 CSS3 语法的扩充版本,此处就是选择这种。
一:Ruby版本的安装和使用
//先安装好ruby以后,直接在命令行运行下面的命令就可以完成安装工作了。 //安装过程可能需要翻墙,当然,你也可以选择node.js系列打包工具的sass编译工具 gem install sass //下面的第一条命令表示编译sass文件为css文件 //(其中param可选参数有:nested:嵌套缩进的css代码,它是默认值;expanded:没有缩进的、扩展的css代码;compact:简洁格式的css代码;compressed:压缩后的css代码) //第二条是一个例子 //第三条表示监听文件变化,改变立即编译 sass [--style param] sourceFile.scss targetFile.css sass --style compressed test.scss test.css sass --style compressed --watch test.scss:test.css
二:变量
sass可以使用变量,就像下面这样,以$开头:
$btn_bgcolor:#222222; input.btn{ background-color:$btn_bgcolor; }
如果变量是用在字符串中,你需要用#{}包裹一下:
$direction:top; input.btn{ margin-#{$direction}:10px; }
三:计算
sass支持的计算使用起来也很简单,就是编程语言类似的样子(不是一定必须的,不过运算符之间留空格是好的习惯):
div{ padding:(14px / 2); right: $var * 10%; }
四:嵌套
个人使用总结,嵌套就二种,分离的和合并的(自己起的名字),合并的比分离的多了一个&,下面分别举例:
//[分离的]源代码 div{ .btn{ //Todo } } //[分离的]编译后 div .btn{ //Todo } //[合并的]源代码 div{ &.btn{ //Todo } } //[合并的]编译后 div.btn{ //Todo }
五:注释
/*会保留到编译后*/ //只出现在源文件 /*!即使是压缩了也会保留*/
六:继承
现在有了一个公共的按钮样式:
.btn{ //按钮的公共样式 }
你现在要写一个提交按钮,为了在基础按钮基础上开发,你可以写这样的代码:
.btn-submit{ @extend .btn; //你对提交按钮的特殊样式 }
七:插入文件
编译一般编译主文件,别的文件由主文件引入,比如现在有主文件root.scss,还有一个重置文件_reset.scss(开头的下划线表示这是一个局部文件,并不需要生成对应的独立css文件),你只需要在主文件中添加一行:
@import "./src/reset";
八:Mixin
说的简单点就是代码模板预定义:
@mixin bgQuick($url,$bgcolor:red){ background-repeat: no-repeat; background-position: center center; background-size: auto auto; background-image:url($url); background-color:$bgcolor; }
使用的时候,传递参数(有缺省值的可以传入也可以不传入):
div{ @include bgQuick('image/smile.png'); }
九:函数
函数也很好用,看个例子:
@function double($size) { @return $size * 2; } #sidebar { width: double(5px); }
十:if
sass的@if用not,or,and分别表示非,或,与。
$flag:1; div{ @if $flag == 1 { //Todo } @else if($flag > 1 and $flag < 10){ //Todo } @else { //Todo } }
十一:for
@for $i from 0 to $home_nav_num { .nav li:nth-child(#{$i + 1}) { background-position-y: (0 - $i)*70px - 20px; } }
十二:while
$i:0; @while $i < $home_nav_num { .nav li:nth-child(#{$i + 1}) { background-position-y: (0 - $i)*70px - 20px; } }
十三:each
@each $i in 1, 2, 3 { .nav li:nth-child(#{$i + 1}) { background-position-y: (0 - $i)*70px - 20px; } }
十四:Compass 样式库
最后提一下样式库Compass,sass本身是一个语言,借助这个库,会大大提高开发速度,立柱于css深入理解解决问题,借助工具加速开发。
相关推荐
前端 2020-08-03
maiktom 2020-05-11
StylusGalaxy 2020-04-29
前端 2020-04-29
骷髅狗 2020-04-24
jiangfulai 2020-04-18
jiangfulai 2020-04-11
jiangfulai 2020-03-05
taoqidejingling 2020-03-05
ZylCN 2020-03-03
前端 2020-02-19
不知道写什么 2020-01-16
xxuncle 2019-12-27
zhanghao 2019-12-27
wghou 2019-12-27
王军强 2019-11-17
ZylCN 2019-11-12
tianzyc 2019-11-08