美文网首页
css预处理语言less(0726)

css预处理语言less(0726)

作者: LAYoung_f1b8 | 来源:发表于2019-07-29 18:45 被阅读0次

    html:
    <!DOCTYPE html>

    <html lang="en">

    <head>

        <meta charset="UTF-8">

        <meta name="viewport" content="width=device-width, initial-scale=1.0">

        <meta http-equiv="X-UA-Compatible" content="ie=edge">

        <link rel="stylesheet" href="index.css">

        <title>Document</title>

    </head>

    <body>

        <!--

            css的常见预处理语言:less  sass  stylus

            它扩展了 CSS 语言,增加了变量、Mixin、函数等特性,使 CSS 更易维护和扩展。

            less的语法向下兼容,可以兼容所有css的语法

                优雅降级  高版本兼容低版本

                渐进增强  低版本向上兼容

            1.指定css的字符集    @charset "utf-8";

            2.less中的//注释编译后不会在css中显示    /**/此注释会显示在css中

            3.定义变量  @变量名:值;  一般为大量重复使用的值定义为变量  @width:1200px;

              使用时  width:@width;

            4.变量定义属性  定义属性时,使用时必须加上{}  用法为@{bg} @bg:background;

              使用时  @{bg}:red;

            5.变量定义选择符 (不建议使用)

              @header:div.wrap>div.header;

            6.Mixins 混入 相当于定义函数  .名称(参数,参数,参数){设置值}

                .border(){

                    border:1px solid red;

                }

            @p @c1 @c2为定义的参数

            .linear(@p,@c1,@c2){

                background:-webkit-linear-gradient(@p,@c1,@c2);

                background:-moz-linear-gradient(@p,@c1,@c2);

                background:-o-linear-gradient(@p,@c1,@c2);

                background:-ms-linear-gradient(@p,@c1,@c2);

            }

            使用时  div{

                .linear(top,red,green)

            }

            7.用混入函数时  括号传递的参数可以传递默认值,也可以传递自己设置的值

                .border(@width:2px){

                    border:@width solid red;

                }

            8.设置hover属性效果  用&符号代表当前所在的元素的父级

                ul{

                    width:100px;

                    height:100px;

                    background-color:red;

                    这个就相当于给ul添加hover效果

                    &:hover{

                        width:200px;

                        height:200px;

                    }

                }

            9.导入url.less      @import "url.less";

            10.继承    .two会继承.one的所有样式,并且有自己的background:blue属性

                .one{

                    width:300px;

                    height:300px;

                    }

                .two{

                    &:extend(.one);

                    background:blue;

                    }

            11. less支持计算属性

                变量名可以重复,当局部变量和全局变量冲突时,优先使用局部变量

            12.特殊的样式

                border-radius:~'20px/20px';斜线代表除法,用~''包裹就代表了是设置样式而不是除法

                background:url('@{path}1.jpg') no-repeat 0px 0px;在路径里面也可以引入变量,直接使用代表路径

        -->

        <!-- <div class="one"></div>

        <div class="two"></div> -->

        <div class="wrapper">

            <div class="top">

                <div class="nav"></div>

                <div class="title"></div>

            </div>

            <div class="middle">

                <ul class="content">

                    <li>li1</li>

                    <li>li2</li>

                    <li>li3</li>

                    <li>li4</li>

                </ul>

            </div>

            <div class="bottom">

                <!-- <p>我是p1</p>

                <p>我是p2</p>

                <p>我是p3</p> -->

            </div>

            <div class="foot"></div>

        </div>

    </body>

    </html>

    less:

    @charset "utf-8";

    *{

        margin: 0;

        padding: 0;

    }

    @width:1200px;//定义变量

    @bg:background;//定义属性

    .border(@w:5px,@sty,@col){

        border: @w,@sty,@col;

    }

    .wrapper{

        width: @width;

        @{bg}:#abcdef;

        .border(1px, solid, red);

        .top{

            width: 500px;

            height: 500px;

            background-color: aquamarine;

            // border-radius: ~'250px/250px';

            // &:hover{

            //    background-color: beige;

            // }

            .nav{

                width: 100px;

                height: 100px;

                background-color: red;

            }

            .title{

                // 要继承的话,需要从父级一层一层向下写

                &:extend(.wrapper .top .nav);

                background-color: yellow;

            }

        }

        .middle{

            &:extend(.nav);

        }

        .bottom{

            width: 300px;

            height: 300px;

            background-color: chartreuse;

        }

        .foot{

            &:extend(.wrapper .bottom);

        }

    }

    相关文章

      网友评论

          本文标题:css预处理语言less(0726)

          本文链接:https://www.haomeiwen.com/subject/uteirctx.html