• Scss语法


    CSS书写代码规模较大的Web应用时,容易造成选择器、层叠的复杂度过高,因此推荐通过SASS预处理器进行CSS的开发,SASS提供的变量、嵌套、混合、继承等特性,让CSS的书写更加有趣与程式化。

    变量 $

    $color0:#00a;           // 全局
    .link{
        $color1:#a00;       // 局部
        $color2:#0a0 !global; // 转换成全局
        span{ color:$color; }
    }

    嵌套

    ul{  
        li {}  
    }

    父选择器

    .link{
        &:hover{} // == .link:hover
        body  & {} // == body .link
        &-bar{}   // == .link-bar
    }

    属性嵌套

    1 .link{
    2     font:{  
    3         family:Airl; // == font-family
    4         size:12px; // == font-size
    5     }
    6 }

    占位符 %

    %link{}
    @extend %link;
    
    // 这段代码不会被输出到最终生成的CSS文件,因为它没有被任何代码所继承。
    %other-styles {
      display: flex;
      flex-wrap: wrap;
    }
    
    // 下面代码会正常输出到生成的CSS文件,因为它被其接下来的代码所继承。
    %message-common {
      border: 1px solid #ccc;
      padding: 10px;
      color: #333;
    }
    
    .message {
      @extend %message-common;
    }
    
    .success {
      @extend %message-common;
      border-color: green;
    }
    
    .error {
      @extend %message-common;
      border-color: red;
    }
    
    .warning {
      @extend %message-common;
      border-color: yellow;
    }

    运算

        • / % < <= > >= == !=
          / 将被视为除法运算符号:
          如果值,或值的一部分,是变量或者函数的返回值
          如果值被圆括号包裹
          如果值是算数表达式的一部分
    p {
        font: 10px/8px;             // 10px/8px;
        $ 1000px;
         $width/2;            // 500px;
         round(1.5)/2;       // 算除法
        height: (500px/2);          // 250px;
        margin-left: 5px + 8px/2px; // 9px;
         calc(100% - .5rem)
    }
    

      

    需要用变量,又不让 / 做除法,使用#{}包裹

    font:  #{ $b } / #{ $a }
    
    $theme='default'
    .page[data-theme= #{$theme}]{
        background-color:#f1f1f1;
    }

    插值语句 #{}

    $name : foo
    p.#{ $name } {}   // p.foo{}

    import

    @import "foo.css";
    @import "foo" screen;
    @import "http://foo.com/bar";
    @import url(foo);
    #main {
      @import "example";
    }

    继承 extend

    .err{}
    .err2{
        @extend .err;
    }

    混合 @mixin

    @mixin  style1 { 
        color:#a00; 
    }
    @mixin  style2($c:#00a, $size) { 
        color:$c; 
    }
    .page1{ 
        @include style1; 
    }
    .page2{ 
        @include style2(#00a,12px);
    }

    函数 @function

    @function width($n){
        @return $n*2;
    }
    .box{
        width(5);
    }
  • 相关阅读:
    Docker 安装各种环境
    N级树形菜单封装
    一个周期算出所有高电平的个数
    DDR3新版(3):DDR3自动读写控制器
    DDR3_新版(2):IP核再封装
    数电(6):时序逻辑电路
    Vue表单那些事
    liunx环境修改minio默认端口和后台启动
    liunx 后台启动mongodb服务
    liunx安装和部署nacos配置中心
  • 原文地址:https://www.cnblogs.com/xfcao/p/11820450.html
Copyright © 2020-2023  润新知