zoukankan      html  css  js  c++  java
  • CSS的扩展less和sass

      less和sass的目的是为了更加简化css,但是还是需要css来为网页添加样式!

    less

     变量

        @color1: #5B83AD;

        @color2:  @color1-#333;

         div{

         color: @color2;
        }

    带参数混合

        .border-radius (@radius) {

          border-radius: @radius;
         -moz-border-radius: @radius;
         -webkit-border-radius: @radius;

          }


        div{
         .border-radius(4px);
         }


    这样的好处在于,之前要重复写很多代码的元素,现在只要进行调用
       .border-radius (@radius) 就可以了,避免了重复写兼容性的问题。

       多参数混合

    多个参数可以使用分号或者逗号分隔,推荐使用分号分隔,因为逗号有两重含义:它既可以表示混合的参数,也可以表示一个参数中一组值的分隔符。

           .wrap (@w;@h) {

            white:@w;
            hight:@h;

          }

           div{
              .wrap(100px;100px);
          }


     sass有两种后缀名文件:

    一种后缀名为sass,不使用大括号和分号;
    另一种就是我们这里使用的scss文件,这种和我们平时写的css文件格式差不多,使用大括号和分号。

    建议使用:scss.

    $fontSize: 12px;

    body{

          font-size:$fontSize;

    }

    混合(mixin)

        @mixin ($w,$h) {
          $w;
           height:$h;
        }


        @include opacity(80px,60px); 
      


      在sass里面,需要注意的是:    

         less里面:

        .fontSize: 12px;

        body{

           fontSize: 14px;

            font-size:.fontSize; }

        p{

                 font-size:.fontSize; }

    会显示:

       body{

           fontSize14px;

       }

      p{

        fontSize12px;

    }

    sass里面:

    $fontSize12px;

        body{

             $fontSize14px;

             font-size:$fontSize; }

        p{

             font-size:$fontSize; }

    会显示:

       body{

           fontSize14px;

       }

      p{

        fontSize14px;

    }

    多参数:

    @mixin horizontal-line($border:1px dashed #ccc, $padding:10px)

           {

                border-bottom:$border;

                padding-top:$padding;

                padding-bottom:$padding; }

             .imgtext-h li{

                 @include horizontal-line(1px solid #ccc);

               }

      只传一个值,那么调用@include horizontal-line时,会设置 padding-top和 padding-bottom的默认值,

             如果@include horizontal-line没有写默认值,那么sass会报错,需要修改@include horizontal-line需要传递的值,或者在.imgtext-h li里面,添加一个值。

     

    所以说,在sass局部定义是变量会影响全局的变量,p元素会根据div内部的定义字体大小的,来设置p元素的字体大小。

    在选择器中声明的变量会覆盖外面全局声明的变量。(这也就人们常说的sass没有局部变量)

        不仅这样,还能做if判断、for循环和三目运算。

       @for $i from 1 through 3

               {

             .item-#{$i}{ width: 2em * $i; }

           }

     会显示:

    .item-1 { width: 2em; }

    .item-2 { width: 4em; }

    .item-3 { width: 6em; }

      from 1 through 3是表示从1开始到3结束,只需要修改值,就能实现你需要的几个.item-x,和它的宽度。

      

    
    
    
  • 相关阅读:
    Eventbus的功能
    Linux下xz与tar的区别
    IntelliJ IDEA出现:This file is indented with tabs instead of 4 spaces的问题解决
    IntelliJ IDEA设置properties文件显示中文
    oh-my-zsh官方教程
    Vim出现:_arguments:450: _vim_files: function definition file not found的问题解决
    Ubuntu 16.04下安装zsh和oh-my-zsh
    zsh与oh-my-zsh是什么
    Mac安装IntelliJ IDEA时快捷键冲突设置
    IntelliJ IDEA删除项目
  • 原文地址:https://www.cnblogs.com/liner730/p/4658565.html
Copyright © 2011-2022 走看看