Less语言笔记

Less是一种CSS预处理器,它引入了变量、嵌套规则、函数等特性,简化了CSS的编写,减少了冗余。Less文件通过编译生成CSS,支持注释、分层、变量和混合(函数)等功能,提高了样式表的可维护性和复用性。
摘要由CSDN通过智能技术生成

Less是什么

在开发的过程中,会有很多选择器的层级和相同的内容这样会显得CSS文件写的样式会显得很冗余,于是就有了Less,Less是为了简化CSS的书写形式而诞生的一种语言,但是Less文件最终也会产生CSS文件,Less也能写CSS

Less基本操作

Less语法的内容有点像编程语言的基本语法,因此这样就会比较容易学习,在学习的过程中多与编程语言进行对比着来看

下面给个最基本的格式,这里是在js标签下使用,vscode也有插件,还有一些软件(Koala)可以编译,但是不管是插件也好,js也好,本质都是为了产生CSS文件,进而使用

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8"/>
		<title></title>
		<style type="text/less">
			/*这里就写less语法*/
		</style>
	</head>
	<body></body>
</html>
<script src="https://cdn.bootcdn.net/ajax/libs/less.js/4.1.3/less.min.js"></script>

Less分层

Less文件

#main {
	width: 30px;
	height: 90px;
	color: red;
	.son { //这和符合标签的双标签书写形式,标签里面可以套标签,样式也可以套样式,这样这里的.son也就相当于是#main下面的
		width: 30px;
		height: 30px;
		background-color: blue;
	}
}

编译后的CSS文件

#main {
	width: 30px;
	height: 90px;
	color: red;
}
#main .son {
	width: 30px;
	height: 30px;
	background-color: blue;
}

可以看出在Less分层里面写的默认是在指父子关系,但是有一类伪类选择器,例如hover

 #main {
 	width:30px;
	height: 90px;
	&:hover { //例如&指代前面一层的选择器,然后后面跟要的伪类选择器,这样就灵活了很多
		width: 40px;
	}
	&>div { //这是代表最近一层的子元素的样式
		background: color;
	}
 }

Less注释

Less的注释和编程语言JavaScript和CSS是一样的,用/**/表示多行注释,//表示行内注释

Less变量

有了变量也可以简化很多的事情,变量可以装入指定的内容,然后进行操作

  1. 变量的声明
格式:
@变量名:值
  1. 变量的使用
格式:
@变量名,这是CSS普通值使用变量的情况下
@{变量名},这是CSS属性名和选择器名使用变量的情况下(需要在变量名两边加个花括号)

Less函数

在CSS中有很多重复的样式是多余的,在编程语言中,可以利用函数去多次重复调用代码块,在Less中也有类似函数的使用,在Less中的函数叫做混合

  1. 不带参数的混合(函数)

    	#fun(){ //这里的函数名要写成选择器的样子,一般写成类选择器和ID选择器
    		width:200px;
    		height:200px;
    		background: blue;	
    	}
    	.dm {
    		#fun()
    	}
    	.dm1 {
    		#fun()
    	}
    
  2. 带参数的混合(函数)

	#argfun(@width,@height,@color){ //这里完全可以和JavaScript里面的函数理解,形参
		width:@width;
		height:@height;
		background: @color;
	}
	.dm {
		#argfun(200px,200px,blue) //实参传入
	}
	.dm1 {
		#argfun(100px,200px,red)
	}
	.dm2 {
		#argfun(@height:200,@width:100px;@color:red) //指定参数名传值,如果不指定就是按照形参的顺序进行传入
	}
  1. 默认值参数的混合(函数)
#normalFun(r,@w,@h){ //这里写个r是用来做标示的,类似flag
	height: @h;
	width: @w;
	background: red;
}
#normalFun(b,@w,@h){ //这里填个b也用来做标示的,类似flag
	height: @h;
	width: @w;
	background: blue;
}
.dm {
	#normalFun(r,200px,200px); //传入标示r
}
.dm1 {
	#normalFun(b,100px,200px); //传入标示b
}

4.多个参数的传值

 .fun(@1,@2,@3){
	border: @arguments; //就是把传进的参数全部放这里
	border: @1 @2 @3; //这个效果和上面这个效果一样
}
.dm {
 	width: 200px;
 	height: 200px;
 	.fun(1px,solid,red);
}

Less模块

在编程语言中可以通过模块的形式扩展自己的包,在Less里面也可以导入指定的Less文件,然后使用Less文件里面的变量和混合(函数)

//在index.less文件下的内容
#argfun(@width:200px,@height,@color){ //定义一个函数(混合)
    width:@width;
    height:@height;
    background: @color;
}
@color:green; //定义一个变量
	//主文件less下的内容
	@import "./index.less";
	.dm {
		#argfun(200px,200px,@color); //利用导入进来的函数和变量
	}
	.dm1 {
		#argfun(100px,200px,red);
	}

Less运算

在CSS中,值是不支持直接运算的,但是在Less中,CSS属性的值是支持直接运算的

.render(){
	background: red;
}
.dm {
	width: 100px+50px;//在less中,不仅仅是可以加还可以乘和除,减
	height: 150+50%;//相加的数字中,必须要有一个数字是带单位的,这样才能把最终的值带上指定的单位,比如这里就是算的200%
	.render();
}

Less继承

在CSS中,有很多重复的样式,在Less中除了可以用混合(函数)解决,还可以使用继承解决,继承是指拿指定选择器中的属性和值放到当前选择器中

.dm1 {
	width: 200px;
	height: 200px;
	background: blue;
}
.dm {
	&:extend(.dm1);
}

编译后的源码:

.dm1,dm { //最终会编译成这种多个选择的形式
	width: 200px;
	height: 200px;
	background: blue;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Penge.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值