• Scss 与 Sass 入门学习小记 (一)


    关于scss的安装请点击这里

    1.变量

    定义一个变量:

    SassScript 最普遍的用法就是变量,变量以美元符号($)开头,赋值方法与 CSS 属性的写法一样:

    $primary-color:#129b33;
    $primary-border:1px solid #fff;

    使用我们的定义的变量

    div.box {
        background-color: $primary-color;
        border: 1px solid $primary-color;
        border: $primary-border;
    }
    // 编译结果
    div.box {
        background-color:#129b33; 
       border: 1px solid #129b33;
      border:1px solid #fff;
    }

    变量支持块级作用域,嵌套规则内定义的变量只能在嵌套规则内使用(局部变量),不在嵌套规则内定义的变量则可在任何地方使用(全局变量)。将局部变量转换为全局变量可以添加 !global 声明:

    #main {
      $width: 5em !global;
      width: $width;
    }
    #sidebar {
      width: $width;
    }
    //编译结果
    #main {
      width: 5em;
    }
    
    #sidebar {
      width: 5em;
    }

    2.选择器嵌套模式

    // 这样写会生成父类空格子类的选择器   .nav ul li
    .nav {
        height: 100px;
        ul {
            margin: 0;
            li {
                padding: 5px;
            }
        }
    }
    //编译结果
    .nav {
      height: 100px;
    }
    .nav ul {
      margin: 0;
    }
    .nav ul li {
      padding: 5px;
    }
     

    正如我们所见嵌套模式会生成 派生选择器 或者叫上下文选择器,也就是嵌套与被嵌套之间会生成 空格,但是,如果我们想生成 类似伪类的 a:hover的选择器,则要用到 & 来代替父类选择器

    .nav {
        height: 100px;
    
        ul {
            margin: 0;
    
            li {
                padding: 5px;
    
                a {
                    color: #000;
    
                    &:hover {
                // .nav ul li a:hover{} color: #fff
    ; } } } } & &-text { // 这里会转换为 .nav .nav-text{} font-size: 16px; } }

    3.属性嵌套模式

    // 属性的嵌套
    body {
        font: {
            family: Helve;
            size: 16px;
            weight: 600;
        }
    }
    
    .nav {
        border: 1px solid #000 {
            left: 0; 
            right: 0; 
        }
    }
    // 编译结果
    body{
         font-family:Helve,
         font-size: 16px;
         font-weight: 600;
    }
    .nav{
      border: 1px solid #000;
      border-left: 0; 
      border-right: 0;
    
    }

    4.定义混合指令 @mixin

    混合指令的用法是在 @mixin 后添加名称与样式
    // 定义
    @mixin alert {
        color: #000;
        background-color: #fff;
    
        a {
            color: #555;
        }
    }
    
    // 使用  @include
    .alert-waring {
        @include alert;
    }
    //编译
    .alert-waring {
        color: #000;
        background-color: #fff;
    }
    
    .alert-waring a {
        color: #555;
    }
    // 定义带参数的mixin
    @mixin alert($text-color, $backgroud) {
        color: $text-color;
        background: $backgroud;
    
        a {
            // darken内置的函数 加深指定颜色的暗度
            color: darken($text-color, 10%);
        }
    }
    // 使用
    .alert-waring {
        // 按参数的顺序传值
        @include alert(#000, #444)
    }
    
    .alert-info {
        // 不按参数的顺序,但是要指定参数的名字
        @include alert($backgroud: #444, $text-color:#000)
    }

    5.继承和扩展

    继承和扩展另一个选择器的所有样式 不仅会继承指定的选择器的样式 还会继承与其相关的选择器的样式,继承的结果是创建一个群组选择器
    .alert {
        padding: 5px;
    }
    
    .alert-info {
        @extend .alert;
        background: #000;
    }
    // 编译结果
    // 生成群组选择器
    .alert, .alert-info{
        padding: 5px;
    }
    .alert-info{
        background: #000;
    }
    // 继承相关的选择器的样式
    .alert {
        padding: 5px;
    }
    .alert a{
        color: red;
    }
    .alert-info {
        @extend .alert;
        background: #000;
    }
    // 编译
    .alert, .alert-info{
        padding: 5px;
    }
    .alert a, .alert-info a{
        color: red;
    }
    .alert-info{
        background: #000;
    }
  • 相关阅读:
    基于Java的地铁线路查询系统设计思路
    个人总结05
    构建之法读书笔记03
    Java 8 (二) 新的时间API
    MySql基础笔记(三)其他重要的事情
    MySql基础笔记(二)Mysql语句优化---索引
    JavaScript基础笔记(十四)最佳实践
    JavaScript基础笔记(十三)测试和调试
    MySql基础笔记(一)Mysql快速入门
    JavaScript基础笔记(十二)Ajax
  • 原文地址:https://www.cnblogs.com/recode-hyh/p/11129294.html
Copyright © 2020-2023  润新知