超快入门sass

2018-03-15  本文已影响0人  022901c9b093

前言:

为了提高开发效率,前去学习sass。学完后发现非常简单,官网上前文太多,学习起来十分不效率。因此出一片这样文章,给那些想要把sass快速上手的人。

ps:阅读本文章前首先需要熟悉css          ps2:第一次写文章可能不算太好请见谅,文章末尾有介绍编译sass的编译器


变量的引入

用$符号声明变量

$color-red:red

div{color:$color-red}

编译后:

div{color:red;}

其中$color-red==$color_red

在sass中 不区分 下划线和中划线

css嵌套规则

此处借用sass官网的代码

原css代码:

#content article h1 { color: #333 }

#content article p { margin-bottom: 1.4em }

#content aside { background-color: #EEE }

利用sass嵌套可以这么写:

#content {

        article {

            h1{color:#333}

            P{margin-bottom:1.4em}

        }

    aside{background-color:#EEE}

}

应对类似:hover的伪类时,如:

#content a{color:red}

#content a:hover{color:blue}

用sass写

#content a{

        color:red;

        &:hover{color:blue}

}

如果不是很清楚结构的话,再来一个例子

sass代码:

#content{ 

     a  {   color: red;

                &:hover{color: blue}  

         }    

    &:hover{ color: #000; }

}

编译后的css:

#content a {color: red; } 

 #content a:hover { color: blue; }

#content:hover { color: #000; }

理解:&符号指向当前父级选择器,改变上文sass代码

#content{  

  a{ color: red;     

    body &:hover{color: blue} 

   } 

   body &:hover{        color: #000;    }

}

然后编译

#content a {color: red; }

 body #content a:hover { color: blue; }

body #content:hover { color: #000; }

群组选择器嵌套

sass能够减少重复的代码量,如下运用官网的例子,css:

.container h1, .container h2, .container h3 { margin-bottom: .8em }

Sass:

.container{

h1,h2,h3{margin-bottom:.8em}

}

一下子减去许多负担,有或者,sass:

nav, aside { 

   a {color: blue}  

    p {color: red;}

}

编译后的css:

nav a, aside a {  color: blue; }

nav p, aside p {  color: red; }

子组合选择器和同层组合选择器:>、+和~

此处用官网的例子:

article {

  ~ article { border-top: 1px dashed #ccc }

  > section { background: #eee }

  dl > {

    dt { color: #333 }

    dd { color: #555 }

  }

  nav + & { margin-top: 0 }

}

编译后:

article ~ article { border-top: 1px dashed #ccc }

article > footer { background: #eee }

article dl > dt { color: #333 }

article dl > dd { color: #555 }

nav + article { margin-top: 0 }

不禁让人想到了&符号

&指向父级,然而在 >+~选择器的前面加上&并不影响使用,但是面对伪类选择器&符号必须有,至于为什么,可以自己去尝试在伪类 : 符号连接的代码随便哪一边多出一个space,试试效果就明白了

嵌套属性

利用官网的例子

Sass:

nav {

  border: {

  style: solid;

  width: 1px;

  color: #ccc;

  }

}

编译后的Css:

nav {

  border-style: solid;

  border-width: 1px;

  border-color: #ccc;

}

例子二:

Sass:

nav {

      border: 1px solid #ccc {

          left: 0px;

          right: 0px;

  }

}

编译后的css:

nav {

  border: 1px solid #ccc;

  border-left: 0px;

  border-right: 0px;

}

导入sass文件

@import “sidebar”  

可以省去默认的sass和scss的文件后缀

如果要导入原生css,请将css的后缀改为scss

默认变量值

$font-size-lg:40px !default;

如果$font-size-lg变量值没有重新声明,就使用默认值40px

混合器(个人理解为可移动复制的代码块)

使用@mixin做标识,并用@include引用,官方例子如下,sass:

@mixin rounded-corners {

  -moz-border-radius: 5px;

  -webkit-border-radius: 5px;

  border-radius: 5px;

}

notice {

  background-color: green;

  border: 2px solid #00aa00;

  @include rounded-corners;

}

编译成css:

.notice {

  background-color: green;

  border: 2px solid #00aa00;

  -moz-border-radius: 5px;

  -webkit-border-radius: 5px;

  border-radius: 5px;

}

当然混合器中还能使用css,如:

@mixin no-bullets {

  list-style: none;

  li {

    list-style-image: none;

    list-style-type: none;

    margin-left: 0px;

  }

}

使用时注意父级选择器

给混合器传参

@mixin tag-color($a-color,$b-color:$a-color,$c-color:$a-color){

color:$a-color;

background-color:$b-color;

border-color:$c-color;

}

div{

@include tag-color(red);或者@include tag-color(red,blue,yellow);

}

编译后的css:

div {

color:red;

background-color:red;

border-color:red; }

选择器继承就不讲解了,不是那么容易理解的,需要的请去官网第六节查看https://www.sass.hk/guide/


最后介绍一下编辑器,在做好sass环境设置的前提下
第一种:可以使用webstorm,这里贴上如何设置的帖子
第二种:使用webpack,添加sass环境,最后打包编译(webpack很好用,但是学习起来有一定的难度这里就不做详细介绍)
第三种

上一篇 下一篇

猜你喜欢

热点阅读