上篇文章介绍了如何安装Less,我们将所有东西都写在.less里面,最后通过命令将.less转换成.css文件,就可以放入到项目里用了。今天了解一些less常用知识点。
1.变量:声明两个变量,一个是背景颜色,一个是文本颜色
Less代码:
@background-color: #ffffff; @text-color: #1A237E; p{ background-color: @background-color; color: @text-color; padding: 15px; } ul{ background-color: @background-color; } li{ color: @text-color; }
将其编译成css后的代码:
p{ background-color: #ffffff; color: #1A237E; padding: 15px; } ul{ background-color: #ffffff; } li{ color: #1A237E; }
这就是Less里面的变量用法,用起来非常方便。比如上面想切换那两个颜色只需要将变量值互换一下即可。
2.Mixin :可以将已有的 class
和 id
的样式应用到另一个不同的选择器上。比如看下面例子。
#circle{ background-color: #4CAF50; border-radius: 100%; } #small-circle{ 50px; height: 50px; #circle } #big-circle{ 100px; height: 100px; #circle }
将其编译成css后的代码:
#circle { background-color: #4CAF50; border-radius: 100%; } #small-circle { 50px; height: 50px; background-color: #4CAF50; border-radius: 100%; } #big-circle { 100px; height: 100px; background-color: #4CAF50; border-radius: 100%; }
注意看上面这个.css里面是不是也出现了 #circle的样式,如果你不想让#circle再出现到.css里面那就加一个()即可,例如:
#circle(){ background-color: #4CAF50; border-radius: 100%; } #small-circle{ 50px; height: 50px; #circle } #big-circle{ 100px; height: 100px; #circle }
将其编译成css后的代码:
#small-circle { 50px; height: 50px; background-color: #4CAF50; border-radius: 100%; } #big-circle { 100px; height: 100px; background-color: #4CAF50; border-radius: 100%; }
另外Mixin还可以传参,比如传入一个指定宽高的参数,默认是30。创建一个 30×30的小圆和一个 200×200 的大圆
#circle(@size: 30px){ background-color: #4CAF50; border-radius: 100%; @size; height: @size; } #small-circle{ #circle } #big-circle{ #circle(200px) }
将其编译成css后的代码:
#small-circle { background-color: #4CAF50; border-radius: 100%; 30px; height: 30px; } #big-circle { background-color: #4CAF50; border-radius: 100%; 200px; height: 200px; }
3.嵌套:可以和html相匹配的方式构造.Less样式表,例如:
ul{ background-color: #03A9F4; padding: 10px; list-style: none; li{ background-color: #fff; border-radius: 3px; margin: 10px 0; } }
将其编译成css后的代码:
ul { background-color: #03A9F4; padding: 10px; list-style: none; } ul li { background-color: #fff; border-radius: 3px; margin: 10px 0; }
就像在其它高级语言中一样, Less
的变量根据范围接受它们的值。如果在指定范围内没有关于变量值的声明, less
会一直往上查找,直至找到离它最近的声明。例如:
@text-color: #000000; ul{ @text-color: #fff; background-color: #03A9F4; padding: 10px; list-style: none; li{ color: @text-color; border-radius: 3px; margin: 10px 0; } }
将其编译成css后的代码:
ul { background-color: #03A9F4; padding: 10px; list-style: none; } ul li { color: #ffffff; border-radius: 3px; margin: 10px 0; }
4.运算:和+ - * /一样 可以操作任何数字类型变量。例如:两个紧邻的 div
标签,第二个标签是第一个标签的两倍宽并且拥有不同的背景色。
@div- 100px; @color: #03A9F4; div{ height: 50px; display: inline-block; } #left{ @div-width; background-color: @color - 100; } #right{ @div-width * 2; background-color: @color; }
将其编译成css后的代码:
div { height: 50px; display: inline-block; } #left { 100px; background-color: #004590; } #right { 200px; background-color: #03a9f4; }
5.函数: 看一下 fadeout
, 一个降低颜色透明度的函数
@var: #004590; div{ height: 50px; 50px; background-color: @var; &:hover{ background-color: fadeout(@var, 50%) } }
将其编译成css后的代码:
div { height: 50px; 50px; background-color: #004590; } div:hover { background-color: rgba(0, 69, 144, 0.5); } 当鼠标放在div上时,降低透明度0.5
想学习更多Less知识,推荐:https://www.w3cschool.cn/less/importing.html
原文来自:https://www.jianshu.com/p/c676041f387e.