less 入门

本文介绍了Less预处理器的主要特性,包括使用变量(@test_width)简化样式,混合(mixin)实现代码复用,如.border边框样式,支持参数传递和默认值。还讲解了匹配模式(@arguments)、运算、嵌套选择器以及如何避免编译问题。通过实例展示了如何提高CSS的编写效率和可维护性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、特性

1、less中的注释

可以使用/**/也可使用//

2、变量

使用@来定义一个变量,比如

@test_width:300px

3、混合

可以将一个元素中多个的的样式写在一起,比如

我定义了一个边框的样式为border

.border{

    border:solid 5px yellow

}

我可以在不同的私房去使用这个边框的样式比如

.box{

   width:300px;

    height:300px;

    background-color:blue;

    .border;

}

.box2{

    .box;

    margin-left:100px

}

 

此外,还可以往里面传入参数

比如

.border_02(@border_width){

    border:solid yellow @border_width;

}

然后再使用它的地方传入特定的参数

.test_hunhe{

    .border_02(50px)

}

 

还可以设定默认值

.border_03(@border_width:10px){

    border:solid yellow @border_width;

}

 

那么此时如果不传入参数,就会使用默认的参数10px,如果传入一个参数就会覆盖掉这个参数。

 

4、匹配模式

相当于js中的if,需要满足条件的才会执行

 

用css写一个三角形

.triangle{

    width:0;

    height:0;

    overflow:hidden;

    border-width:10px;

    border-color:transparent transparent red transparent;

    border-style:dashed dashed solid dashed;

}

 

但是我想,根据我传进来的参数来决定,这个三角形的朝向

那么就可以使用匹配模式来选择

比如

.triangle(top){

border-color:transparent transparent red transparent;

border-style:dashed dashed solid dashed;

}

.triangle(bottom){

border-color: red transparent transparent transparent;

border-style: solid dashed dashed dashed;

}

.triangle(left){

border-color: transparent transparent transparent red;

border-style: dashed dashed dashed solid;

}

.triangle(right){

border-color:red  transparent transparent transparent;

border-style: solid dashed dashed dashed;

}

.triangel(@_){

width:0;

    height:0;

    overflow:hidden;

    border-width:10px;

}

 

那么以后我就可以自己选择哪个三角形了,比如

.sanjiao{

    .triangle(top)

}

 

5、运算

可以在值上面进行相应的数学运算

@test_width:300px

.box_02{

    width:@test_width*5

}

 

6、嵌套(嵌套层级中尽量写少一点层级(style查找样式树需要时间,影响性能。))

 

比如像下面这样的一个dom结构

<ul class="list">

    <li><a href="#"> 哈哈哈 </a> <span>2019-09-02</span></li>

    <li><a href="#"> 哈哈哈 </a> <span>2019-09-02</span></li>

    <li><a href="#"> 哈哈哈 </a> <span>2019-09-02</span></li>

    <li><a href="#"> 哈哈哈 </a> <span>2019-09-02</span></li>

    <li><a href="#"> 哈哈哈 </a> <span>2019-09-02</span></li>

</ul>

 

按css的写法,如果需要匹配li a span 那么就要写成.list li,list li a ,list li span

多个匹配的写法,那么在less里面就可以写成下面的这个样子

.list{

    li{

    }

    a{}

    span{}

 

}

 

7、@arguments 变量

@arguments包含了所有传递进来的参数。

 

比如刚刚那个boder,直接传入@arguments就可以将所有的参数一起使用了

.border_arg(@w:30px,@c:red,@xx:solid){

    border:@arguments

}

 

8、避免编译

如果输入一些困难不能被less识别的语法,可以在前面加上~然后再在后面加上该值(加引号)

 

9、选择器的写法

比如:hover的写法

.span{

    &:hover{

}

}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值