zoukankan      html  css  js  c++  java
  • 手把手带你了解sass

    sass的使用

    减少重复的工作

    1.变量的声明:

    是以$开头给变量命名;

    $height-color: #F30

    2.变量的使用范围:

    变量可以在多个地方存在,不一定限制在代码块中。但是如果定义在了代码块中,则只能在代码块中使用。

    先在外面或者上面给属性命名,在使用的地方应用这些变量。

    3.变量的命名:

    命名:以下划线或者横杠都看自己的意愿,中划线更普遍。(大部分下划线和横杠是互通的,但是类名和ID名不一定。

    4.sass的嵌套使用:

    sass的嵌套:支持多层嵌套,避免重复书写相同的类名或者ID名。

    注意:

    父选择器标识符:&

    1.连接伪元素:

    &会直接被父级元素替换

    article a {
      color: blue;
      :hover { color: red }
    }
    ​
    =>artical a {color:blue}
    artical a :hover{color:red}
    artical a{
        color:blue;
        &:hover{color:red}
    }

    如果使用伪元素需要用&来连接,不然就直接识别成后代元素,会和父元素有一个空格导致样式与预期不符。

    2.群组选择器的嵌套

    将重复的元素提出来:

    .container{
        h1,h2,h3{margin-bottom:10px}
    }
    =>
    .container h1, .catainer h2, .container h3{margin-bottom:10px}
    3.组合选择器>,+,~

    1.>:选中元素的直接子元素(只有一个元素)

    2.+:选中同层相邻元素(所有+后面相同的元素)

    3.~:选中所有在~前相同层级的~后的元素

    5.嵌套属性

    nav{
        border:{
            style:solid;
            1px;
            color:#ccc
        }
    }
    =>
    nav{
        border-style:solid;
        border-1px;
        border-color:#ccc;
    }

    6.导入sass文件

    1.@import

    css中也有该规则,但是只有执行到@import时才会去下载导入的css文件;加载过慢

    sass无需发起额外的下载请求;@import时就解析成了css;

    color.scss => @import "color"

    注意:可以省略后缀名

    2.使用部分sass文件

    如果以下划线开头命名则不会单独编译输出css

    3.默认变量

    !default

    4.注意

    如果以css结尾

    导入的是一个URL地址

    导入的是url()

    =>生成的文件是直接被浏览器解析了的,可能会造成额外下载

    6.注释

    静默注释://

    不会暴露在浏览器中

    普通注释:/* */

    7.混合器

    1.使用场景:

    1.有大段样式代码需要重复使用=>将重复代码抽离出来成一个逻辑单元

    2.能用通用的名字将这个混合器的功能描述出来;(语义化)

    `rounded-corners

    2.标识符:

    @mixin @include

    3.使用方法:

    //相当于将这个样式封装起来了
    @mixin rounded-centers{
        -moz-border-radius:5px;
        -webkit-border-radius:5px;
        border-radius:5px;
    }
    //使用这个样式
    notice{
        background-color:green;
        border:2px solid #ccc;
        @include round-center
    }

    4.规则

    1.如果混合器通过@include包含在父规则中时,会生成嵌套规则

    2.可以使用&

    5.给混合器传参

    类似于function

    @mixin link-colors($normal, $hover, $visited){
        color:$normar;
        &:hover{color:$hover}
        &:visited{color:$visited}
    }
    a{
        @include(red,blue,green)
    }
    a{
        @include link-colors($normal:red,$hover:blue,$visited:green)
    }

    6.默认参数值

    声明:$name:default-value

    8.选择器继承

    1.定义:选择器可以继承为另一个选择器的所有样式

    2.语法:@extend

    .error{
        border:1px solid red;
        background-color:#fdd;
    }
    .seriousError{
        @extend .error;
        border-3px;    
    }

    后写的属性样式可以覆盖先写的;

    3.继承何时选择

    当一个元素拥有的类是属于另一个类时

    继承比起混合器生成的代码更少,有利提高站点速度

    当不同的规则被应用到同一个元素上时,先看选择器的权重,如果权重相同则后面的覆盖前面的

    避免多后代时应用继承选择器.foo .bar{@extend .error}

  • 相关阅读:
    面试题汇总
    桥接模式
    2010412 面试题
    2010412 面试题1
    访问者模式
    原码、反码、补码什么意思?有什么用?
    装饰模式
    mysql 忘记root密码 进行重置
    运维开源工具一览
    编写一个函数计算小费,小费为总账单的20%
  • 原文地址:https://www.cnblogs.com/crushxz/p/11672015.html
Copyright © 2011-2022 走看看