SASS:CSS预处理器

1、安装

SASS是Ruby语言写的,但是两者的语法没有关系。先安装Ruby,然后再安装SASS。

Ruby安装好后,安装SASS:

gem install sass

2、SASS有四种编译风格

nested:嵌套缩进的css代码,它是默认值。

expanded:没有缩进的、扩展的css代码。

compact:简洁格式的css代码。

compressed:压缩后的css代码。
生产环境一般用最后一个:

sass --style compressed test.sass test.css

3、使用

可以在屏幕上显示.scss文件转化的css代码

sass test.scss
如果要将显示结果保存成文件,后面再跟一个.css文件名

sass test.scss test.css
也可以让SASS监听某个文件或目录,一旦源文件有变动,就自动生成编译后的版本

//watch a file

sass --watch test.scss:test.css

//watch a directory

sass --watch app/sass:public/stylesheets

4、变量

所有变量以$开头

$blue : #1875e7;

div {
    color: $blue;
}

如果变量要镶嵌在字符串中,写在#{}中

$side : right;
$margin : 10px;

div {
    margin-#{$side}: $margin;
} 

5、计算功能

SASS支持代码中使用算式

$var : 100px;

div {
    margin: (20px/2);
    top: 100px + 20px;
    left: $var * 10%; 
}

6、嵌套

选择器嵌套

div {
    h1 {
        font-size: 12px;
    }
}

属性嵌套

p {
    background: {
        color: red;
    }
}

在代码块内,可以用&引用父元素

a {
    &:hover { color: red; }
}

7、注释

SASS注释风格

标准的CSS注释 /*comment*/,会保留到编译后的文件。

单行注释 //comment ,只保留在SASS源文件中

重要注释/*!comment*/,即使是压缩模式编译,也会保留,通常用于声明版本信息

8、继承

.class1 {
    color: red;
}

使用@extend命令继承

.class2 {
    @extend .class1;
    font-size:12px;
}

9、Mixin

使用@Mixin命令,定义一个代码块

@mixin left {
    float: left;
    margin-left: 10px;
}

使用@include命令,调用mixin

div {
    @include left;
}

mixin可以指定参数和缺省值

@mixin left($value: 10px) {
    float: left;
    margin-left: $value;
}

使用的时候,根据需要加入参数

div {
    @include left(20px);
}

生成浏览器前缀实例

@mixin rounded($vert, $horz, $radius: 10px) {
    border-#{$vert)-#{$horz}-radius: $radius;
    -moz-border-radius-#{$vart}-#{$horz}: $radius;
    -webkit-border-#{$vert}-#{$horz}-radius: $radius;
}

调用

li {
    @include rounded(top, left);
}
p {
    @include rounded(top, left, 5px);
}

10、颜色函数

SASS提供了一些内置的颜色函数,以便生成系列颜色

lighten(#cc3, 10%) //#d6d65c
darken(#cc3, 10%)  //#a3a329
grayscale(#cc3)    //#808080
complement(#cc3)   //#33c

11、插入文件

@import命令,用来插入外部文件

@import "path/filename.scss";

如果插入的是css文件,等同于css的import命令

@import "foo.css";

12、条件语句

@if

p {
    @if 1 + 1 == 2 { border: 1px solid; }
    @if 1 < 0 { border: 2px dotted; }
}

@else

@if lightness($color) > 30% {
    background-color: #000;
} @else {
    background-color: #fff;
}

13、循环语句

for循环

@for $i form 1 to 10 {
    .border-#{$i} {
        border: #{$i}px solid blue;
    }
}

while循环

$i : 6;
@while $i > 0 {
    .item-#{$i} { width: 2em * $i; }
    $i: $i - 2;
}

each

@each $member in a, b, c, d {
    .#{$member} {
        background-image: url("/image/#{$member}.jpg");
    }
}

14、自定义函数

@function double($n) {
    @return $n * 2;
}

#sidebar {
    width: double(5px);
}
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值