sass intermediate grammar

WBOY
Release: 2016-08-27 08:53:53
Original
1593 people have browsed it

github address: https://github.com/lily1010/sass/tree/master/course02

The sass syntax used is:

sass --watch test.scss:test.css --style compact --style expanded

As shown below:

1 Class name nesting

test.scss content is:

<span style="color: #000000;">.test1 {
    font-size: .15rem;
    p{
        color: #333;
        .test11 {
            width: 3px;
        }
    }
}</span>
Copy after login

The content compiled into test.css is:

<span style="color: #000000;">.test1 {
  font-size: .15rem;
}
.test1 p {
  color: #333;
}
.test1 p .test11 {
  width: 3px;
}</span>
Copy after login

2 Attribute nesting

test.scss content is:

<span style="color: #000000;">.test2 {
    margin: {
        left: 10px;
        right: 20px;
    }
}
.test21 {
    margin: 0 0 0 0{    /*命名空间也可以有自己的属性*/
        left: 10px;
        right: 20px;
    }
}</span>
Copy after login

The content compiled into test.css is:

<span style="color: #000000;">.test2 {
  margin-left: 10px;
  margin-right: 20px;
}

.test21 {
  margin: 0 0 0 0;
  margin-left: 10px;
  margin-right: 20px;
}</span>
Copy after login

3 Reference the parent selector and precisely position the parent selector and reverse it to become the parent selector

test.scss content is:

<span style="color: #000000;">.a {
    font-size: .15rem;
    &:hover {           //引用父选择器
        color: red;
    }
    .ll {               //精确定位父选择器
       color: black;
        &:hover {
            height: 20px;
        }
    }
    .test3 & {          //反向成为父选择器
        width: 10px;
    }
}</span>
Copy after login

The content compiled into test.css is:

<span style="color: #000000;">.a {
  font-size: .15rem;
}
.a:hover {
  color: red;
}
.a .ll {
  color: black;
}
.a .ll:hover {
  height: 20px;
}
.test3 .a {
  width: 10px;
}</span>
Copy after login

4 Global variables

test.scss content is:

<span style="color: #000000;">/*方法一*/
$color: red;
.test4 {
    color: $color;
}
/*方法二*/
.test41 {
    $red: red !global;
    color: $red;
}
.test42 {
    color: $red;
}</span>
Copy after login

The content compiled into test.css is:

<span style="color: #000000;">/*方法一*/
.test4 {
  color: red;
}

/*方法二*/
.test41 {
  color: red;
}

.test42 {
  color: red;
}</span>
Copy after login

5 A quoted string will be compiled into an unquoted string

test.scss content is:

<span style="color: #000000;">@mixin test5($left) {   //此处$不可去掉
    border-#{$left}:1px #000 solid;
    left: 20px;
    top: 10px;
}
.lili2 {
    @include test5("left");
}</span>
Copy after login

The content compiled into test.css is:

<span style="color: #000000;">.lili2 {
  border-left: 1px #000 solid;
  left: 20px;
  top: 10px;
}</span>
Copy after login

6 Learn about division

test.scss content is:

<span style="color: #000000;">/*需要注意:Sass 数学函数在算术运算期间会保留单位
*可以将/解析为除法三种情况
*(1)如果该值,或值的任何部分,存储在一个变量中或通过函数返回。
* (2)如果该值是由括号括起来的,除非这些括号是在一个列表(list)外部,并且值是括号内部。
* (3)如果该值被用作另一个算术表达式的一部分。
*/
p {
    font-size: 10px/2px; // 原生的CSS,不作为除法 
    $width: 100px;
    width: $width/2;
    height: (100px/2);
    margin-left: 5px + 8px/2px;
}</span>
Copy after login

The content compiled into test.css is:

<span style="color: #000000;">p {
  font-size: 10px/2px;
  width: 50px;
  height: 50px;
  margin-left: 9px;
}</span>
Copy after login

7 Color Operation

test.scss content is:

<span style="color: #000000;">.test7 {
    color: #302010 + #333333;
}
.test71 {
    color: #010101 * 2;
}
.test72 {
    color: rgba(0,0,0,0.3) + rgba(1,1,1,0.3); //必须具有相同的alpha值,才能进行颜色运算,但是alpha不变
}
/*如果想让alpha值变化,则需要计算函数*/
.test73 {
    color: opacify(rgba(0,0,0,0.3),0.3);
}</span>
Copy after login

The content compiled into test.css is:

<span style="color: #000000;">.test7 {
  color: #635343;
}

.test71 {
  color: #020202;
}

.test72 {
  color: rgba(1, 1, 1, 0.3);
}

/*如果想让alpha值变化,则需要计算函数*/
.test73 {
  color: rgba(0, 0, 0, 0.6);
}</span>
Copy after login

8 String operations

test.scss content is:

<span style="color: #000000;">.test8 {
    width: 2px + 3px;
}
.test81::after {    //带引号字符串和不带引号字符串,谁在前面就以谁为主
    font-family: "arial" + black;
    content: lala + "lili";
}
$value: 20;     //在字符串里面插入动态值
.test82::before {
    content: "wo ke yi #{$value} lili";
}</span>
Copy after login

The content compiled into test.css is:

<span style="color: #000000;">.test8 {
  width: 5px;
}

.test81::after {
  font-family: "arialblack";
  content: lalalili;
}

.test82::before {
  content: "wo ke yi 20 lili";
}</span>
Copy after login

9 Parentheses increase priority

test.scss content is:

<span style="color: #000000;">.test9 {
    width: 1px + (2px * 3);
}</span>
Copy after login

The content compiled into test.css is:

<span style="color: #000000;">.test9 {
  width: 7px;
}</span>
Copy after login

10 Default variables !default

test.scss content is:

<span style="color: #000000;">/*如果分配给变量的值后面添加了!default标志 ,这意味着该变量如果已经赋值,那么它不会被重新赋值,但是,如果它尚未赋值,那么它会被赋予新的给定值。*/
$color: red;
$color: pink !default;
.test10 {
    color: $color;
}</span>
Copy after login

The content compiled into test.css is:

<span style="color: #000000;">.test10 {
  color: red;
}</span>
Copy after login

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template