LESS基础用法详解

发布于:2025-05-23 ⋅ 阅读:(19) ⋅ 点赞:(0)

LESS 基础用法详解

LESS(Leaner Style Sheets)是一种动态样式语言,它在 CSS 的基础上增加了变量、嵌套、混合、运算、函数等特性,使得样式表更加灵活、可维护。本文将详细介绍 LESS 的所有基本用法,帮助你快速掌握 LESS 的核心语法和功能。


1. 变量(Variables)

LESS 允许你为常用的值(如颜色、字体大小等)定义变量,便于统一管理和修改。

@primary-color: #4CAF50;
@font-size: 16px;

body {
  color: @primary-color;
  font-size: @font-size;
}

注意: 变量名以 @ 开头。


2. 嵌套(Nesting)

LESS 支持样式的嵌套,类似于 HTML 结构,增强了代码的可读性。

nav {
  ul {
    margin: 0;
    padding: 0;
    li {
      display: inline-block;
      a {
        color: @primary-color;
      }
    }
  }
}

3. 混合(Mixins)

混合(Mixin)允许你定义一组样式,然后在其他选择器中复用这些样式。

3.1 基本混合

.rounded-corner {
  border-radius: 5px;
  -webkit-border-radius: 5px;
}

.button {
  .rounded-corner;
  background: @primary-color;
}

3.2 带参数的混合

.box-shadow(@x: 0, @y: 0, @blur: 5px, @color: #333) {
  box-shadow: @x @y @blur @color;
}

.panel {
  .box-shadow(2px, 2px, 10px, #666);
}

4. 运算(Operations)

LESS 支持对数值、颜色等进行加减乘除等运算。

@base: 10px;

.box {
  width: @base * 2;   // 20px
  height: @base + 5;  // 15px
  margin: @base / 2;  // 5px
}

颜色也可以运算:

@color: #888;

.header {
  color: @color + #111; // #999999
}

5. 函数(Functions)

LESS 内置了许多实用的函数,如颜色操作、字符串处理、数学运算等。

5.1 颜色函数

@base: #f04615;

.light {
  color: lighten(@base, 20%); // 变亮
}
.dark {
  color: darken(@base, 20%);  // 变暗
}
.alpha {
  color: fade(@base, 50%);    // 设置透明度
}

5.2 数学函数

@width: 100px;

.box {
  width: ceil(@width / 3);   // 向上取整
  height: floor(@width / 3); // 向下取整
  margin: round(@width / 3); // 四舍五入
}

6. 作用域与变量覆盖

LESS 变量有作用域,嵌套作用域内可以覆盖外层变量。

@color: red;

.box {
  @color: blue;
  color: @color; // blue
}

.text {
  color: @color; // red
}

7. 导入(Import)

LESS 支持 @import 导入其他 LESS 文件,便于模块化开发。

@import "reset.less";
@import (less) "theme.less";

注意: LESS 会自动识别 .less 后缀。


8. 选择器插值(Selector Interpolation)

可以通过变量动态生成选择器。

@name: banner;

.@{name}-title {
  font-size: 24px;
}

编译后:

.banner-title {
  font-size: 24px;
}

9. 继承(Extend)

通过 :extend 关键字实现选择器继承。

.button {
  padding: 10px;
  color: white;
}

.primary-btn:extend(.button) {
  background: @primary-color;
}

10. 注释

LESS 支持单行(//)和多行(/* ... */)注释。

// 这是单行注释
/* 这是多行注释 */

11. 条件语句(Guards)

LESS 支持在混合中使用条件判断。

.set-color(@color) when (lightness(@color) >= 50%) {
  color: black;
}
.set-color(@color) when (lightness(@color) < 50%) {
  color: white;
}

.text {
  .set-color(#ddd);
}

12. 循环(Loops)

LESS 通过递归混合实现循环。

.loop(@i) when (@i > 0) {
  .item-@{i} { width: (10px * @i); }
  .loop(@i - 1);
}
.loop(5);

网站公告

今日签到

点亮在社区的每一天
去签到