广州总部电话:020-85564311
广州总部电话:020-85564311
20年
互联网应用服务商
请输入搜索关键词
知识库 知识库

优网知识库

探索行业前沿,共享知识宝库

CSS预处理器 Less

发布日期:2025-08-15 18:08:21 浏览次数: 809 来源:编程佳油站
推荐语
Less让CSS开发更高效:变量、混合、函数一应俱全,轻松实现样式复用与维护。

核心内容:
1. Less的安装与基本使用方式
2. 变量、注释等核心功能详解
3. 混合(Mixins)的高级应用技巧
小优 网站建设顾问
专业来源于二十年的积累,用心让我们做到更好!

概览

Less 是什么?

Less 是一门 CSS 预处理语言,它扩充了 CSS 语言,增加了诸如变量、混合(mixin)、函数等功能,让 CSS 更易维护、方便制作主题、扩充。Less 可以运行在 Node 或浏览器端。

Less安装

通过 npm 安装

npm install less -g

-g: 表示全局安装

若想安装特定版本号可以在less后加上@+版本号

Less转换为CSS

less是没有办法直接使用在浏览器上面的,只有css才能直接使用到浏览器的上面。所以我们要把less转化成css。

  1. 通用方式
  • 新建一个less文件(a.less)
@color: blue; 
a { 
color: @color; 
background-color: @color; 
}
  • 打开cmd,cd到less文件目录,输入以下命令:
lessc a.less a.css

这样a.less文件的代码就会编译为css代码并保存到a.css文件中

a { 
 color: blue; 
 background-color: blue; 
}
  1. 在VSCode中使用less(可以使用插件)
  • 在vscode拓展插件中搜索Easy LESS点击安装即可。
  • 安装后只要新建了一个.less后缀的文件,软件就会在同一目录下自动创建一个.css的文件,并且在.less文件编写代码并按下Ctrl+S保存的同时,css文件会编译生产相应的css代码。

变量(Variables)

使用变量可以方便修改属性值。在Less中可以使用变量:表达式:@+变量名 : 属性值

@color: #1a2a3a; // 变量声明 
body { // 使用变量 
background-color: @color; 

div { 
color: @color; 
}

编译为:

 /* css */ 
 body { 
  background-color#1a2a3a
 } 
 div { 
  color#1a2a3a
 }

注释(Comments)

在less中可以进行代码注释,方式有单行注释(//)多行注释(/ *  * /) 两种,但是只有多行注释才能在编译后的文件中出现。

@color: #1a2a3a; 
body { 
// 使用变量 
/*使用变量*/ 
background-color: @color; 
}

编译为:

/* css */
body { 
 /*使用变量*/ 
 background-color#1a2a3a
}

混合(Mixins)

混合(Mixin)是一种将一组属性从一个规则集包含(或混入)到另一个规则集的方法。

.length { 
width: 100px; 
height: 200px; 
}
# apple a {
color: #222; .length(); 

.happy a { 
color: blue; 
.length(); 
}

编译为:

/* css */ 
.length { 
 width100px
 height200px
}
apple a {
 color#222
 width100px
 height200px

.happy a { 
 color: blue; 
 width100px
 height200px
}

嵌套(Nesting)

Less 提供了使用嵌套(nesting)代替层叠或与层叠结合使用的能力。

1. 选择器嵌套

div { 
h1 { 
color: #333; 

p { 
margin-bottom: 1.4px; 
a { 
color: #999; 


}

编译为:

/* css */ 
div h1 { 
 color#333

div p { 
 margin-bottom1.4px

div p a { 
 color#999
}

2. 父选择器 &

在嵌套 CSS 规则时,有时也需要直接使用嵌套外层的父选择器,例如,当给某个元素设定 hover 样式时,或者当 body 元素有某个 classname 时,可以用 & 代表嵌套规则外层的父选择器。

a { 
font-weight: bold; 
text-decoration: none; 
&:hover { 
text-decoration: underline; 

body.firefox & { 
font-weight: normal; 

}

编译为:

/* css */ 
a { 
 font-weight: bold; 
 text-decoration: none; 

a:hover { 
 text-decoration: underline; 

body.firefox a { 
 font-weight: normal; 
}

@规则嵌套和冒泡

@ 规则(例如 @media 或 @supports)可以与选择器以相同的方式进行嵌套。@ 规则会被放在前面,同一规则集中的其它元素的相对顺序保持不变。这叫做冒泡(bubbling)。

.component { 
width: 300px; 
@media (width: 567px) { 
width: 600px; 
@media (resolution: 192dpi) { 
background-image: url(/img/1.png); 


@media (width: 1120px) { 
width: 400px; 

}

编译为:

/* css */ 
.component { 
 width300px

@media (width: 567px) { 
 .component { 
  width600px
 } 

@media (width: 567pxand (resolution: 192dpi) { 
 .component { 
  background-imageurl(/img/1.png); 
 } 

@media (width: 1120px) { 
 .component { 
  width400px
 } 
}

运算(Operations)

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

.class { 
width: @width; 
color: @color; 

@width: 0.4 + 0.4; 
@base: 0.1 ; 
@sub: @width - @base; 
@color: #121a2a * 2; // 颜色运算
# div {
color: @color;
width: @sub;
}

编译为:

.class { 
 width0.8
 color#243454
}
div {
 color#243454
 width0.7
}

转义(Escaping)

转义(Escaping)允许使用任意字符串作为属性或变量值,编译后会原样输出。 格式:~"(任意字符串)"

@min678: ~"(min-width: 678px)"; 
.element { 
@media @min678 { 
font-size: 0.8rem; 

}

编译为:

@media (min-width: 678px) { 
 .element { 
  font-size0.8rem
 } 
}

注意,从 Less 3.5 开始,可以简写为:(任意字符串)

@min678: (min-width: 678px); 
.element { 
@media @min678 { 
font-size: 0.8rem; 

}

在 Less 3.5+ 版本中,许多以前需要“引号转义”的情况就不再需要了。

函数(Functions)

Less 内置了多种函数用于转换颜色、处理字符串、算术运算等。这些函数在Less 函数手册中有详细介绍。

@width: 0.4; 
@color: #1a2a3b; 
.class { 
width: percentage(@width); 
color: saturate(@color, 5%); 
background-color: spin(lighten(@color, 25%), 8); 
}

编译为:

/* css */ 
.class { 
 width40%
 color#182a3d
 background-color#415e94
}

了解更多函数:**函数手册**

命名空间和访问符

为了组织结构、为了以后方便重用或分发、为了提供一些封装的目的,或是为了对混合(mixins)进行分组。可以将一些混合(mixins)和变量置于 #bundle 之下:

# bundle() {
.button { 
border: 1px solid red; 
&:hover { 
background-color: black; 


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

编译为:

header a {
 color: blue; 
 border1px solid red; 
}
header a:hover {
 background-color: black; 
}

映射(Maps)

从 Less 3.5 版本开始,你还可以将混合(mixins)和规则集(rulesets)作为一组值的映射(map)使用。

@width: 0.4; 
@color: blue;
# div {
color: @color;
width: @width;

.span{ 
color: #div[color]; 
width: #div[width]; 
}

编译为:

div {
 color: blue; width0.4

.span { 
 color: blue; 
 width0.4
}

作用域(Scope)

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

@width: 0.4; 
@color: blue;
# div {
@color: white; 
#header { 
color: @color; // white 
width: @width; // 0.4 

}

编译为:

div #header {
 color: white; 
 width0.4
}

与 CSS 自定义属性一样,混合(mixin)和变量的定义不必在引用之前事先定义

.class { 
width: @width; 
color: @color; 

@width: 0.4; 
@color: blue;

编译为:

.class { 
 width0.4
 color: blue; 
}

导入(Importing)

可以通过@import "要导入的文件名(可以省略文件拓展名)"引用其他less文件中的内容,将其输出在同一个css文件中。

// _test2.less 
body{ 
text-align: center; 
}
// test.less 
@import "_test2"; // 导入_test2.less文件内容 
@width: 0.4; 
@color: #1a2a3b; 
.class { 
width: @width; 
color: @color; 
}

编译为:

/* css */ 
body { 
 text-align: center; 

.class { 
 width0.4
 color#1a2a3b

优网科技,优秀企业首选的互联网供应服务商

优网科技秉承"专业团队、品质服务" 的经营理念,诚信务实的服务了近万家客户,成为众多世界500强、集团和上市公司的长期合作伙伴!

优网科技成立于2001年,擅长网站建设、网站与各类业务系统深度整合,致力于提供完善的企业互联网解决方案。优网科技提供PC端网站建设(品牌展示型、官方门户型、营销商务型、电子商务型、信息门户型、微信小程序定制开发、移动端应用(手机站APP开发)、微信定制开发(微信官网、微信商城、企业微信)等一系列互联网应用服务。


我要投稿

姓名

文章链接

提交即表示你已阅读并同意《个人信息保护声明》

专属顾问 专属顾问
扫码咨询您的优网专属顾问!
专属顾问
马上咨询
联系专属顾问
联系专属顾问
联系专属顾问
扫一扫马上咨询
扫一扫马上咨询

扫一扫马上咨询

和我们在线交谈!