返回

初识SCSS

初识SCSS

Sass/SCSS 的区别

SCSS是Sass3 引入的新语法,其语法完全兼容CSS3,并且继承了Sass的功能。

Sass和SCSS的区别主要有以下两点:

  • 文件拓展名不同 Sass文件以 .sass 后缀为拓展名,SCSS文件以 .scss 后缀为拓展名。

  • 语法不同 Sass以缩进式语法规则来书写,不带{};,而SCSS的语法书写则与CSS相似。

Sass语法:

body
    margin: 0
    background: #3694FA
    div
        width: 240px
        heigit: 240px
        border: 
            width: 1px
            style: solid
            color: #3694FA

注意冒号后面一定要有空格

SCSS语法:

body{
    margin:0;
    background:#3694FA;
    div{
        width:240px;
        height:240px;
        border:{
            width: 1px;
            style: solid;
            color: #3694FA;
        }
    }
}

最终输出CSS文件

body {
    margin: 0;
    background: #3694FA;
}
body div {
    width: 240px;
    height: 240px;
    border-width: 1px;
    border-style: solid;
    border-color: #3694FA;
}

SCSS的安装

安装Ruby

Sass基于Ruby语言开发而成,因此需要先安装Ruby
或者使用node安装node-sass。

注意需要将Ruby添加到环境变量中

安装完成后输入以下指令来测试是否安装成功

ruby -v

更换Ruby源

因为国内网络原因导致gem无法正常访问,需要更换为国内源

#删除原来的gem源
gem sources --remove https://rubygems.org/
#或者使用下面的指令移除所有的gem源
gem sources --clear-all

#替换为国内的gem源(2018.8.26), 注意检查源是否失效
gem sources --add https://gems.ruby-china.com/

#查看是否替换成功
gem sources --list

安装Sass和Compass

#安装Sass
gem install sass

#安装Compass
gem install compass

测试是否安装成功

sass -v
compass -v

编译Sass/SCSS

命令行编译

#编译Sass文件
sass input.sass output.css

#编译SCSS文件
sass input.scss output.css

监听文件变换,自动编译文件

#监听单个文件
sass --watch input-file:output-file

#监听文件夹
sass --watch input-dir:output-dir

常用编译选项

#编译格式
sass --watch scss:css --style <nested|expanded|compact|compressed>

#添加调试map
sass --watch scss:css --sourcemap=<auto|file|inline|none>

#开启debug信息
sass --watch scss:css --debug-info

#使用CSS-superset SCSS 语法
sass --watch scss:css --scss

#不使用编译缓存
sass --watch scss:css --no-cache

编译格式

Sass文件

body{
    margin:0;
    background:#3694FA;
    div{
        width:240px;
        height:240px;
        border:{
            width: 1px;
            style: solid;
            color: #3694FA;
        }
    }
}

nested编译格式

body {
  margin: 0;
  background: #3694FA; }
  body div {
    width: 240px;
    height: 240px;
    border-width: 1px;
    border-style: solid;
    border-color: #3694FA; }

expanded编译格式

body {
  margin: 0;
  background: #3694FA;
}
body div {
  width: 240px;
  height: 240px;
  border-width: 1px;
  border-style: solid;
  border-color: #3694FA;
}

compact编译格式

body { margin: 0; background: #3694FA; }
body div { width: 240px; height: 240px; border-width: 1px; border-style: solid; border-color: #3694FA; }

compressed编译格式

body{margin:0;background:#3694FA}body div{width:240px;height:240px;border-width:1px;border-style:solid;border-color:#3694FA}
Licensed under CC BY-NC-SA 4.0