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