2021-03-12 LESS的基本使用:

一、LESS的基本使用

经过上述介绍,我们知道Less属于预处理器 可以简单理解Less其实就是CSS的扩展语言,它增加了一些CSS原本没有的东西,如变量、混合(mixin)、函数等功能,让CSS`变得更容易书写和维护

1.变量

Less可以使用一个变量,需要配合@,并且支持表达式

@width:10px;@height:@width+10px;#header{width:@width;height:@height;}

编译成:

#header{width:10px;height:20px;}

2.混入Mixins

Mixins常常用于将一组通用的属性混合到另一个需要的地方,混入时需要配合()使用

.bordered{border-top:dotted 1px black;border-bottom:solid 2px black;}#menu a{color:#111;.bordered();}.post a{color:red;.bordered();}

编译成

.bordered{border-top:dotted 1px black;border-bottom:solid 2px black;}#menu a{color:#111;border-top:dotted 1px black;border-bottom:solid 2px black;}.post a{color:red;border-top:dotted 1px black;border-bottom:solid 2px black;}

3.嵌套Nesting

Less书写的代码更加简洁,模仿了HTML的组织结构,例如以前

#header{color:black;}#header .navigation{font-size:12px;}#header .logo{width:300px;}

使用Less

#header{color:black;.navigation{font-size:12px;}.logo{width:300px;}}

另外,在Less内,&可以表示当前选择器的父级

4.运算符

Less支持+、-、*、/算术运算符,可以对任何数字、颜色或变量进行运算

需要注意:算术运算符在加、减或比较之前会进行单位换算。计算的结果以最左侧操作数的单位类型为准。如果单位换算无效或失去意义,则忽略单位。无效的单位换算例如:px到cm或rad到%的转换

// 所有操作数被转换成相同的单位@conversion-1:5cm+10mm;// 结果是 6cm@conversion-2:2-3cm-5mm;// 结果是 -1.5cm// conversion is impossible@incompatible-units:2+5px-3cm;// 结果是 4px// example with variables@base:5%;@filler:@base*2;// 结果是 10%@other:@base+@filler;// 结果是 15%//对颜色的计算@color:#224488/2;//结果是 #112244background-color:#112244+#111;// 结果是 #223355

另外,乘法和除法不作转换

@base:2cm*3mm;// 结果是 6cm

5.转义Escaping

Less可以使用使用任意字符串作为属性或变量值,前提是格式:~"anything"或~'anything'

@min768:~"(min-width: 768px)";.element{@media @min768{font-size:1.2rem;}}

编译为

@media(min-width:768px){.element{font-size:1.2rem;}}

6.函数Functions

Less内置了非常多的函数,用于转换颜色、处理字符串、算术运算等

@base:#f04615;@width:0.5;.class{width:percentage(@width);// returns `50%`color:saturate(@base,5%);background-color:spin(lighten(@base,25%),8);}

这个例子利用percentage函数将 0.5 转换为 50%,利用saturate将颜色饱和度增加 5%,以及利用lighten将颜色亮度降低 25% 并且利用spin将色相值增加 8

7.命名空间和访问符

有时,出于组织结构或仅仅是为了提供一些封装的目的,你希望对混合(mixins)进行分组。你可以用Less更直观地实现这一需求。

#bundle(){.button{display:block;border:1px solid black;background-color:grey;&:hover{background-color:white;}}}

现在,如果我们希望把.button类混合到#header a中,我们可以这样做:

#header a{color:orange;#bundle.button();// 还可以书写为 #bundle > .button 形式}

编译成

#header a{color:orange;display:block;border:1px solid black;background-color:grey;}#header a:hover{background-color:white;}

8.映射Maps

从Less 3.5版本开始,可以将混合(mixins)和规则集(rulesets)作为一组值的映射(map)使用。简单来说就是想js中的对象.属性来读取值,但是是用[]的形式

#colors(){primary:blue;secondary:green;}.button{color:#colors[primary];border:1px solid #colors[secondary];}

编译成

.button{color:blue;border:1px solid green;}

9.作用域Scope

Less中的作用域的概念与JavaScript类似,首先在本地查找变量和混合(mixins),如果找不到,则从“父”级作用域继承

@var:red;#page{@var:white;#header{color:@var;// white}}

并且变量类似js有提升效果,例如

@var:red;#page{#header{color:@var;// white}@var:white;}

10.注释

less的注释跟js一致,分单行注释和多行注释

/* 一个块注释

* style comment! */@var:red;// 这一行被注释掉了!@var:white;

11.导入Importing

Less也支持导入语法,如果导入的文件是.less扩展名,则可以将扩展名省略掉

@import"library";// library.less@import"typo.css";

作者:深度剖析JavaScript

链接:https://www.jianshu.com/p/6d5f8ec6e2f4

来源:

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

你可能感兴趣的:(2021-03-12 LESS的基本使用:)