Home Web Front-end HTML Tutorial sass intermediate grammar

sass intermediate grammar

Aug 27, 2016 am 08:53 AM

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

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

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Is HTML easy to learn for beginners? Is HTML easy to learn for beginners? Apr 07, 2025 am 12:11 AM

HTML is suitable for beginners because it is simple and easy to learn and can quickly see results. 1) The learning curve of HTML is smooth and easy to get started. 2) Just master the basic tags to start creating web pages. 3) High flexibility and can be used in combination with CSS and JavaScript. 4) Rich learning resources and modern tools support the learning process.

The Roles of HTML, CSS, and JavaScript: Core Responsibilities The Roles of HTML, CSS, and JavaScript: Core Responsibilities Apr 08, 2025 pm 07:05 PM

HTML defines the web structure, CSS is responsible for style and layout, and JavaScript gives dynamic interaction. The three perform their duties in web development and jointly build a colorful website.

What is an example of a starting tag in HTML? What is an example of a starting tag in HTML? Apr 06, 2025 am 12:04 AM

AnexampleofastartingtaginHTMLis,whichbeginsaparagraph.StartingtagsareessentialinHTMLastheyinitiateelements,definetheirtypes,andarecrucialforstructuringwebpagesandconstructingtheDOM.

Understanding HTML, CSS, and JavaScript: A Beginner's Guide Understanding HTML, CSS, and JavaScript: A Beginner's Guide Apr 12, 2025 am 12:02 AM

WebdevelopmentreliesonHTML,CSS,andJavaScript:1)HTMLstructurescontent,2)CSSstylesit,and3)JavaScriptaddsinteractivity,formingthebasisofmodernwebexperiences.

Gitee Pages static website deployment failed: How to troubleshoot and resolve single file 404 errors? Gitee Pages static website deployment failed: How to troubleshoot and resolve single file 404 errors? Apr 04, 2025 pm 11:54 PM

GiteePages static website deployment failed: 404 error troubleshooting and resolution when using Gitee...

How to implement adaptive layout of Y-axis position in web annotation? How to implement adaptive layout of Y-axis position in web annotation? Apr 04, 2025 pm 11:30 PM

The Y-axis position adaptive algorithm for web annotation function This article will explore how to implement annotation functions similar to Word documents, especially how to deal with the interval between annotations...

How to use CSS3 and JavaScript to achieve the effect of scattering and enlarging the surrounding pictures after clicking? How to use CSS3 and JavaScript to achieve the effect of scattering and enlarging the surrounding pictures after clicking? Apr 05, 2025 am 06:15 AM

To achieve the effect of scattering and enlarging the surrounding images after clicking on the image, many web designs need to achieve an interactive effect: click on a certain image to make the surrounding...

HTML, CSS, and JavaScript: Essential Tools for Web Developers HTML, CSS, and JavaScript: Essential Tools for Web Developers Apr 09, 2025 am 12:12 AM

HTML, CSS and JavaScript are the three pillars of web development. 1. HTML defines the web page structure and uses tags such as, etc. 2. CSS controls the web page style, using selectors and attributes such as color, font-size, etc. 3. JavaScript realizes dynamic effects and interaction, through event monitoring and DOM operations.

See all articles