Less
1.什么是 Less
Less 官网 是 CSS 的预编译语言,可以简化 CSS 代码,提高代码的复用性。
Less 代码本身不可在浏览器中运行,需要编译后才能运行。因此需要借助工具将 Less 代码编译为 CSS 代码。
2.Less 的安装
Less 包提供了一个 cli 工具 ,lessc 是一个命令行工具,可以将 Less 代码编译为 CSS 代码。
2.1.全局安装
这种方案可以在任何目录使用lessc 命令,但不利于版本控制,所以不推荐。
bash
# 全局安装
npm install -g less2.2.本地安装
这种方案只能在项目目录下使用npx lessc 命令,并且可以配合版本控制。
bash
# 本地安装
npm install less -D2.3 编译 Less 文件
bash
# 编译less
lessc style.less style.css3.Less 的语法
Less(Leaner Style Sheets)是一种 CSS 预处理器,它扩展了 CSS 语言,增加了变量、嵌套规则、混合(mixins)、函数等功能,使得样式表更加模块化和易于维护。Less 文件以.less为扩展名,需要编译成 CSS 文件才能被浏览器解析。
以下是 Less 的一些主要特性:
变量:可以定义颜色、字体等样式属性的值,方便统一修改。
less@brand-color: #4d926f; #header { color: @brand-color; }混入:可以将一组 CSS 声明封装起来,在其他地方复用。
less.rounded-corners(@radius: 5px) { border-radius: @radius; -webkit-border-radius: @radius; -moz-border-radius: @radius; } #header { .rounded-corners(10px); }嵌套:允许在父选择器中直接定义子元素的选择器,让代码结构更清晰。
less#header { h1 { font-size: 26px; font-weight: bold; } p { font-size: 12px; } }操作符:支持数学运算,可以在样式中进行简单的计算。
less@base: 10px; @padding: @base * 2 + 2px; .box { padding: @padding; }函数:提供了多种内置函数用于颜色、数值等的转换。
less@color: #000; .text-box { color: lighten(@color, 20%); }命名空间和访问器:为了提供一些封装,你可能希望对混入进行分组。
less#bundle() { .button { display: block; border: 1px solid black; background-color: grey; &:hover { background-color: white; } } } #header a { color: orange; #bundle.button(); // can also be written as #bundle > .button }映射:使用混入和规则集作为值映射。
less#colors() { primary: blue; secondary: green; } .button { color: #colors[primary]; border: 1px solid #colors[secondary]; } /* 预期输出 */ .button { color: blue; border: 1px solid green; }作用域:Less 支持局部和全局作用域,变量的作用范围遵循就近原则。
less@var: red; #page { @var: white; #header { color: @var; // white } }less@var: red; #page { #header { color: @var; // white } @var: white; }导入:可以导入其他的 Less 文件,有助于拆分和组织大型项目。
less@import "variables.less"; @import "mixins.less";
要开始使用 Less,您需要安装一个 Less 编译器,或者使用在线编译工具。现代开发环境中,通常会结合任务运行器如 Grunt、Gulp,或是构建工具如 Webpack,来自动处理 Less 到 CSS 的编译过程。