当前位置: 首页 > ops >正文

LESS基础用法详解

LESS 基础用法详解

目录

  • LESS 基础用法详解
    • 1. 变量(Variables)
    • 2. 嵌套(Nesting)
    • 3. 混合(Mixins)
      • 3.1 基本混合
      • 3.2 带参数的混合
    • 4. 运算(Operations)
    • 5. 函数(Functions)
      • 5.1 颜色函数
      • 5.2 数学函数
    • 6. 作用域与变量覆盖
    • 7. 导入(Import)
    • 8. 选择器插值(Selector Interpolation)
    • 9. 继承(Extend)
    • 10. 注释
    • 11. 条件语句(Guards)
    • 12. 循环(Loops)

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;   // 20pxheight: @base + 5;  // 15pxmargin: @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);
http://www.xdnf.cn/news/8019.html

相关文章:

  • 智能制造:基于AI制造企业解决方案架构设计【附全文阅读】
  • Redis实战篇Day01(短信登录篇)
  • 《C++ list详解》
  • 金仓数据库主备切换故障解析,一次由相对路径引发的失败与切换流程解读
  • 抛弃传统P2P技术,EasyRTC音视频基于WebRTC打造教育/会议/远程巡检等场景实时通信解决方案
  • 数据库blog5_数据库软件架构介绍(以Mysql为例)
  • 大队项目流程
  • 流程引擎选型指南
  • VSCode推出开源Github Copilot:AI编程新纪元
  • 实战:Dify智能体+Java=自动化运营工具!
  • C++ 中的 **常变量** 与 **宏变量** 比较
  • 【TI MSP430与SD NAND:心电监测的长续航解决方案】
  • Mysql刷题之正则表达式专题
  • 程序编辑器快捷键总结
  • Spring Boot与Disruptor高性能队列整合指南
  • SpringAI 大模型应用开发篇-SpringAI 项目的新手入门知识
  • Vue3实现轮播表(表格滚动)
  • App Builder技术选型指南:从AI编程到小程序容器,外卖App开发实战
  • STM32 CAN CANAerospace
  • 我爱学算法之—— 二分查找(中)
  • MySQL迁移SSL报错
  • web实验(2)
  • Redis 基础知识详解
  • 【笔记】修复AttributeError: ‘super‘ object has no attribute ‘__del__‘
  • 解决Qt Creator在Ubuntu环境下运行Qt程序后,程序中无法输入中文
  • MySQL的可重复读事务隔离级别的实现原理
  • leetcode 438. 找到字符串中所有字母异位词
  • Linux `nc` 命令详细讲解
  • vue3:十四、角色权限管理-表格引入-树形表格
  • Axure系统原型设计列表版方案