Less,全称为Leaner Style Sheets,是一种动态样式语言,它属于CSS(层叠样式表)预处理器的范畴。Less扩展了CSS语言,为其增加了变量、Mixin(混合)、函数等特性,使得CSS更加易于维护和扩展。以下是对Less的详细解释,包括其特点、使用方式以及一个实例讲解。
一、Less的特点
- 变量:
- Less允许使用
@
符号定义变量,这些变量可以在整个样式表中重复使用,从而避免了重复编写相同的样式值。 - 变量不仅可以存储颜色、尺寸等普通样式值,还可以存储选择器、属性名等复杂内容。
- Less允许使用
- Mixin(混合):
- Mixin是一种将一组样式从一个选择器引入到另一个选择器的方式。它类似于CSS中的类,但更加灵活,因为它可以在使用时进行参数化。
- Mixin可以包含选择器、属性、值等,甚至可以包含其他Mixin。
- Mixin分为普通Mixin和带参数的Mixin。普通Mixin在编译时会直接输出到CSS中,而带参数的Mixin则可以在使用时传入不同的参数值,从而生成不同的样式。
- 嵌套规则:
- Less支持嵌套规则,这意味着可以在一个选择器内部定义另一个选择器。这种嵌套结构使得CSS代码更加清晰、易于理解。
- 嵌套规则不仅适用于元素选择器,还适用于类选择器、ID选择器等。
- 运算:
- Less支持对数字、颜色等进行加、减、乘、除等运算。这使得在定义样式时可以更加灵活和方便。
- 例如,可以通过运算来动态计算元素的宽度、高度等属性值。
- 函数:
- Less内置了一些函数,如颜色处理函数、数学函数等。这些函数可以在样式表中使用,以生成更加复杂的样式效果。
- 此外,用户还可以自定义函数来满足特定的需求。
- 作用域和命名空间:
- Less中的变量和Mixin具有作用域的概念。它们可以在定义它们的块级作用域内被访问和使用。
- 通过使用命名空间,可以避免不同模块或组件之间的样式冲突。
- 注释:
- Less支持两种注释方式:单行注释(使用
//
)和多行注释(使用/* */
)。单行注释在编译时会被忽略,而多行注释则会被保留在编译后的CSS中。
- Less支持两种注释方式:单行注释(使用
二、Less的使用方式
- 安装:
- Less可以通过npm命令行进行安装。全局安装可以使用
npm install less -g
命令,而在开发环境中安装则可以使用npm install less --save-dev
命令。
- Less可以通过npm命令行进行安装。全局安装可以使用
- 使用:
- 在HTML文件中,可以通过在
<style>
标签上添加lang="less"
属性来指定使用Less。然后,在<style>
标签内部编写Less代码。 - 另外,还可以使用Less编译器将Less代码编译成CSS代码,以便在浏览器中直接使用。
- 在HTML文件中,可以通过在
三、实例讲解
以下是一个使用Less的实例,展示了如何定义变量、Mixin以及嵌套规则来编写样式表:
less复制代码// 定义变量 @primary-color: #333; @font-size: 16px; // 定义Mixin .border-radius(@radius) { border-radius: @radius; } // 编写样式规则 body { font-family: Arial, sans-serif; font-size: @font-size; color: @primary-color; // 嵌套规则 .header { background-color: lighten(@primary-color, 20%); // 使用函数 padding: 20px; h1 { font-size: 2em; .border-radius(10px); // 使用Mixin并传入参数 } .nav { list-style: none; padding: 0; li { display: inline-block; margin-right: 10px; a { text-decoration: none; color: darken(@primary-color, 10%); // 使用函数并传入参数 &:hover { color: #fff; background-color: @primary-color; } } } } } }
在这个实例中,我们首先定义了两个变量@primary-color
和@font-size
,然后定义了一个Mixin.border-radius
,它接受一个参数@radius
并设置元素的边框半径。接着,我们编写了body
选择器的样式规则,并在其中嵌套了.header
、h1
、.nav
和li
等选择器。在嵌套规则中,我们使用了之前定义的变量和Mixin,并使用了Less内置的颜色处理函数lighten
和darken
来调整颜色亮度。最终,这个Less代码会被编译成相应的CSS代码,以便在浏览器中正常使用。
综上所述,Less是一种强大的CSS预处理器,它扩展了CSS的功能并提高了其可维护性和可扩展性。通过使用Less,我们可以更加高效地编写样式表并生成更加复杂的样式效果。
扫描下方二维码,一个老毕登免费为你解答更多软件开发疑问!

华为鸿蒙生态发展演讲:从操作系统到数字底座的进化论
【导语】在万物互联的智能时代,操作系统是数字世界的“地基”,而华为鸿蒙生态正以惊人的速度重构这一地基的形态。在2025华为开发者大会(HDC)上,华为消费者业务CEO余承东宣布:“鸿蒙生态已跨越1.5亿设备激活量,开发者数量突破380万,成为全球第三大移动应用生态。”这场演讲不仅揭示了鸿蒙的成长密码,更抛出了一个关键命题:当操作系统进化为数字底座,开发者将如何抓住下一波红利?一、数据透视:鸿蒙生态
百度发布多模态AI程序员Zulu:代码革命还是程序员“饭碗”终结者?
【导语】“让AI写代码,人类程序员该何去何从?”在2025百度AI开发者大会上,百度CTO王海峰抛出的这个问题,随着多模态AI程序员Zulu的发布被推向风口浪尖。这款号称“能听、能看、能思考”的代码生成工具,在内部测试中已实现82%的函数级代码自动生成,开发效率提升4倍。当AI开始入侵程序员最后的“技术护城河”,一场关于效率与饭碗的争论正在硅谷与中关村同步上演。一、技术解密:Zulu的“三头六臂”
苹果管理层大换血:库克押注AI机器人,能否再造“iPhone时刻”?
【导语】“当全球都在追赶Vision Pro时,苹果已经悄悄调转船头。”北京时间2025年4月29日,苹果官网悄然更新高管团队名单:原机器学习与AI战略高级副总裁John Giannandrea晋升为首席运营官(COO),机器人技术负责人Kevin Lynch进入执行董事会。这场被外媒称为“苹果20年来最大规模管理层调整”的变革,正式宣告库克将宝押向AI与机器人赛道。在这场豪赌背后,是苹果营收增速
腾讯云Craft智能体发布:AI开发进入“傻瓜模式”,中小企业迎来技术平权时代
【导语】“以后写代码就像发朋友圈一样简单。”在2025腾讯云峰会上,腾讯云副总裁吴运声抛出的这句话,随着全链路AI开发平台“Craft智能体”的发布引发行业震荡。这款被内部称为“AI开发界的美图秀秀”的产品,凭借“零代码搭建AI应用”“模块化自由组合”“按需付费”三大核心卖点,直击中小企业AI开发成本高、周期长、人才缺的行业痛点。当AI技术从实验室走向田间地头,Craft智能体能否成为企业智能化的