zoukankan      html  css  js  c++  java
  • less——css预处理语言

    一、less的由来

    若页面多处使用同一属性的同个值,为了便于维护代码,需要采用变量的形式来解决。
    虽然css原生也支持变量的设置还有计算函数,但是这些兼容性不太好(针对ie8及以下的版本),因此产生了less。
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>less由来</title>
        <style>
            html{
                /* 
                    css原生可以支持变量的设置 
                    缺点:兼容性差
                */
                --color: red;
                --length: 200px
            }
    
            .box1{
                /* calc()计算函数 */
                width: calc(200px * 3);
                height: var(--length);
                background-color: var(--color);
            }
    
            .box2{
                width: var(--length);
                height: var(--length);
                color: var(--color);
            }
    
            .box3{
                width: var(--length);
                height: var(--length);
                border: 10px solid var(--color);
            }
        </style>
    </head>
    <body>
        <!--  
            less是一门css的预处理语言
                - less是一个css的增强版,通过less可以编写更少的代码实现更强大的功能 
                - less的语法大体上和css一致,但less中增添了许多对css的扩展
                    浏览器无法直接执行less代码,要先将less转换为css后再执行
                    (工具:VSCode——Easy LESS)
        -->
        <div class="box1"></div>
        <div class="box2">less</div>
        <div class="box3"></div>
    </body>
    </html>

     二、less常用的语法

     2.1 @变量名

    // less中的单行注释,注释内容不会被解析到css中
     
    /*
       css中的单行注释,注释内容会被解析到css中 
    */
    .box1{
        background-color: #bfa;
    
        .box2{
            background-color: red;
        }
    
        .box3{
            background-color: orange;
        }
    }
    
    // 变量,在变量中可以存储一个任意的值
    // 并且可以在需要时,任意地修改变量中的值
    // 变量的语法:@变量名
    @w:200px;
    @color:#bfa;
    @a:box5;
    
    .box4{
        // 使用变量时,如果是直接使用,则以 @变量名 的形式使用即可
         @w;
        color: @color;
    }
    
    // 作为类名,或者一部分值使用时必须以 @{变量名} 的形式使用
    .@{a}{
         @w;
        background-color: url("../@{a}/goose.jpg");
    }
    
    @b:200px;
    @b:500px;
    
    div{
        // 变量发生重名时,会优先使用比较近的变量
        @b: 115px;
         @b;
        height: @c;
    }
    
    // 可以在变量声明前就使用变量(不推荐使用)
    @c:335px;
    
    .widget{
        color: #fba;
        // $属性名 
        background-color: $color;
    }

     2.2 父元素和扩展

    // 父元素和扩展
    .box1{
        // 后代选择器 —— .box1 .box2
        .box2{
            background-color: aqua;
        }
    
        // 子元素选择器 —— .box1>.box2
        >.box3{
            color: red;
        }
    
        // & 表示外层的父元素
        // 伪类选择器 —— .box1:hover
        &:hover{
            color: blue;
        }
    
        // div .box1
        div &{
             100px;
        }
    }
    
    .p1{
         100px;
        height: 200px;
    }
    
    // :extend() 对当前选择器扩展指定选择器的样式(选择器分组)
    // 相当于并集选择器
    // 即.p1, .p2{ 100px;height: 200px;}
    .p2:extend(.p1){
        color: skyblue;
    }
    
    .p3{
        // 直接对指定的样式进行引用,相当于复制
        // mixin 混合
        .p1(); //不推荐
    }
    
    // 使用类选择器时,可以在选择器后边添加一个括号,实际上是创建了一个mixins
    .p4(){
         100px;
        height: 100px;
        background-color: #bfa;
    }
    
    .p5{
        .p4();
    }

    2.3 混合函数

    // 混合函数:可以设置变量和默认值
    .test(@w: 100px, @h: 200px, @bg-color: red){
         @w;
        height: @h;
        border: 1px solid @bg-color;
    }
    
    div{
        // 调用函数,按顺序传递参数
        // .test();
        .test(@w: 200px);
    }

     三、less代码在浏览器的检查中如何查看

     四、less的补充

    // 可以通过 import 来将其他的less引入到当前的less中
    @import "syntax2.less";
    
    .box1{
        // 在less中所有得数值都可以直接进行运算
        // + - * /
         100px + 100px;
        height: 100px/2;
        background-color: #bfa;
    }

  • 相关阅读:
    HDU1260DP
    HDU1114 背包
    HDU1078记忆化搜索
    HDU1024 最大m子段和
    Codeforces Round #401 (Div. 2) A,B,C,D,E
    HDU3666 差分约束
    HDU1540 区间合并
    HDU3308 线段树(区间合并)
    Codeforces Round #403 (Div. 2) B 三分 C dfs
    HDU1573 线性同余方程(解的个数)
  • 原文地址:https://www.cnblogs.com/nadou/p/13922802.html
Copyright © 2011-2022 走看看