• Less的强大变量用法


    less中的变量应用十分强大,可以灵活的应用到各种不同需求的场景。

    一,属性值变量

    声明:sass声明变量是用$符号,而less声明变量是用@符号

    作用域:也区分为全局变量和局部变量,如果引用的变量有定义局部变量,则优先取局部变量。这里没有闭包的概念!

    例如:

    1. @wd: 12px;
    2. @bgColor: #ff005a;
    3. .container {
    4. width: @wd;
    5. background-color: @bgColor; // 就近取局部变量#FFF
    6. @bgColor: #FFF; // 局部变量
    7. }

    二,属性名变量

    声明:与属性值变量一致,使用@变量名。属性名定义变量可以大大减少代码量

    引用@{变量名} - 需要用大括号包裹

    示例

    1. // 定义属性名变量
    2. @bdCol: background-color;
    3. .main {
    4. @{bdCol}: #FFF; // 引用
    5. }
    6. // 编译后
    7. .main {
    8. background-color: #FFF;
    9. }

    三,选择器变量

    声明:声明方式与值变量类似,主要作用是让选择器变成动态

    引用@{变量名}

    示例

    1. // 定义选择器变量
    2. @outDiv: #warp; // 变量直接定义id选择器
    3. @innerDiv: main; // 变量定义选择器的名称
    4. // 引用
    5. @{outDiv} {
    6. width: 100%;
    7. margin: 20px;
    8. }
    9. .@{innerDiv} { // 引用选择器变量名称,并定义class选择器
    10. color: #fff;
    11. }
    12. #@{outDiv} {
    13. color: #333;
    14. }
    15. // 编译后
    16. #warp {
    17. width: 100%;
    18. margin: 20px;
    19. }
    20. .main {
    21. color: #fff;
    22. }
    23. #warp {
    24. color: #333;
    25. }

    四,url变量

    声明:与普通值变量用法一致,但变量值要加引号。为图片等资源文件的url定义变量。

    引用@{变量名}

    示例

    1. // 定义url变量
    2. @logo: "../assects/img";
    3. .img {
    4. background: url("@{logo}/logo.png"); // 引用,通过大括号、字符串拼接
    5. }
    6. // 编译后
    7. .img {
    8. background: url("../assects/img/logo.png");
    9. }

    五,同时声明变量名和变量值

    声明@变量名: {属性名:属性值}。看上去像是封装一组声明好的变量和值,类似于mixin。

    引用@变量名()后面加小括号

    示例

    1. // 定义样式属性名和属性值的变量
    2. @bgWhite: {background: #FFF;}
    3. // 引用
    4. .main {
    5. @bgWhite();
    6. }
    7. // 编译后
    8. .main {
    9. background: #FFF;
    10. }
    11. // 定义一组样式的变量
    12. @Rules {
    13. color: red;
    14. font-size: 12px;
    15. }
    16. // 引用
    17. .container {
    18. @Rules();
    19. }
    20. // 编译后
    21. .container {
    22. color: red;
    23. font-size: 12px;
    24. }

    六,变量运算

    说明:less的变量支持简单的加减乘除算术运算。

    使用方式:

    加减运算以第一个值的单位为基准

    乘除运算单位必须统一

    示例

    1. @wd: 100px;
    2. @color: #112233;
    3. // 计算应用
    4. .main {
    5. width: @wd + 20; // 120px
    6. .header {
    7. width: @wd - 10px * 2; // 80px
    8. font-size: 14px;
    9. color: @color*2; // #224466
    10. }
    11. }

    七,动态变量-用变量定义变量

    说明:即动态定义要引用的变量名称

    引用:还是通过@符号,但是引用变量的变量,需要两个@。

    示例

    1. @wd: 100px;
    2. @labelWd: "wd"; // 定义labelWd变量需要引用的变量名为wd
    3. // 引用
    4. .title {
    5. width: @@labelWd; // 即@wd > 100px;
    6. }

  • 相关阅读:
    mybatis if标签或者when标签判断字符串是否相等
    我试图扯掉这条 SQL 的底裤。
    纯粹的python优化(数据结构、cache、推导、生成器)
    (WebFlux)002、如何打印日志与链路ID
    go-mysql-elasticsearch+mysql 同步 ElasticSearch(标贝科技)
    01背包问题的一维数组表示形式
    spring事务管理和mysql事务有什么关系?
    【Java】常用类和基础API
    中英翻译《”绿色“一词及其不同含义》
    C++ 函数
  • 原文地址:https://blog.csdn.net/wjs0406/article/details/132616997