less 动态样式语言

1.less的介绍

Less 是一门 CSS 预处理语言,它扩展了 CSS 语言,增加了变量、Mixin、函数等特性,使 CSS 更易维护和扩展
官方文档

2.less需要编译才能被浏览器解析

  • 浏览器本身只能解析css文件,对于less无法解析,需呀解析后留浏览器才能解析
  • 在线解析:引入专门的js插件,对当前页面的less文件进行实时编译(生成css代码后通过插入style标签进行引入)
<link rel="stylesheet/less" type="text/css" href="styles.less" />
<script src="https://cdn.bootcss.com/less.js/3.10.3/less.js"></script>
  • 打包编译:利用node.js对less进行解析,输出对应的css文件
    (1)确保已安装node.js
    (2)在cmd环境下运行 npm install -g less
    (3)执行编译(将此目录下的test.less编译成test.css文件)
lessc test.less test.css

3.使用场景

  • 嵌套语法,让css结构清晰可见,且节省代码数量
  • 支持变量,方便系统性的调整样式(主题色,文字色,边框色)
  • 支持运算,进行变量运算
  • 支持混合,复用css代码
  • 支持引入,方便代码模块化
  • 支持函数,根据传入的参数输出对应的css代码

4.基本语法

  • 嵌套
.box{
    width:100px;
    height: 100px;
    /*只针对子级div有效*/
    > div{
        display: float;
    }
    /*针对后代所有p标签都有效*/
    p{
        text-align:center;
    }
}
  • 伪类和兄弟元素
div{
    width:100px;
    height: 100px;
    // 伪类
    &:nth-of-type(1){
        background-color: red;
    }
    // 兄弟元素(相邻)
    & + box2{
        width:100px;
        height: 100px;
        background-color: blue;
    }
}
  • 变量
/*定义变量*/
@gbColor:red;

.box{
    width: 200px;
    height: 100px;
    /*使用变量*/
    background-color: @gbColor;
}

编译结果

.box {
  width: 200px;
  height: 100px;
  background-color: red;
}
  • 运算:一般用于变量加减(乘除没有意义)
@conversion-1: 50px;
@conversion-2: 100px;

.box {
  //150px
  width: @conversion-1 + @conversion-2;
}
  • 混合:引入其他css类中的属性
.addBorder{
    border:1px solid red;
}
.box{
    width:100px;
    height: 100px;
    /*引用其他css类*/
    .addBorder();
}
  • 函数:相当于引用css类和变量的结合体
/*设置参数,且有默认的值*/
.addBorder(@size:1px){
    border:@size solid red;
}
.box{
    width:100px;
    height: 100px;
    /*引用并传递参数*/
    .addBorder(10px);
}
  • 导入:你可以导入一个 .less 文件,此文件中的所有变量就可以全部使用了。如果导入的文件是 .less 扩展名,则可以将扩展名省略掉:
@import "library"; // library.less

5.总结

  • 简单页面建议直接使用css
  • 将项目需要用到的变量进行梳理,并封装到base.less中,作为基础文件被其他样式文件引用
  • 使用import将base.less导入到其他less文件中,以便使用其定义的变量
posted @ 2019-09-22 13:27  ---空白---  阅读(842)  评论(0编辑  收藏  举报