Login
芋圆社区 > 编程 > Less > Less的运算和作用域

Less的运算和作用域

1008
0
2022-06-17
2023-07-31
Hey、小怪兽


运算和避免编译


  • • +、-、*、/ 可以对任何数字、颜色或变量进行运算,计算的结果以最左侧操作数的单位类型为准。如果单位换算无效或失去意义,则忽略单位。无效的单位换算例如:px 到 cm 或 rad 到 % 的转换
  • /* 5cm + 1cm = 6cm */
    @width: 5cm + 10mm;
    
    /* 因为以左侧单位为准,自动转换成px,2px + 3px - 2px = 3px */
    div {
        width: 2 + 3px - 2mm;
    }
  • • 颜色也可以进行运算
  • @color: #224488 / 2; // 结果是 #12244
    background-color: #112244 + #111; // 结果是 #223355
  • • 在CSS会用到calc用来计算,但是在Less它不大一样,如果希望得到的是:
  • div {
        width: calc(100px - 20px);
    }
    
  • • 在Less这样写,它会编译成:
  • div {
        /* 因为Less直接将100px - 20px了 */
        width: calc(80px);
    }
    
  • • 所以我们需要避免Less编译:
  • div {
      width: ~"calc(100px - 20px)"
    }
    
  • • 同样~""也可以用到@media上
  • @min768: ~"(min-width: 768px)";
    
    .element {
        @media @min768 {
            font-size: 1.2rem;
        }
    }
  • • 编译为:
  • @media (min-width: 768px) {
        .element {
            font-size: 1.2rem;
        }
    }
  • • 注意,从 Less 3.5 开始,可以简写为:
  • @min768: (min-width: 768px);
    
    .element {
        @media @min768 {
            font-size: 1.2rem;
        }
    }
  • • 在 Less 3.5+ 版本中,许多以前需要“引号转义”的情况就不再需要了

作用域


  • • Less 中的作用域与 CSS 中的作用域非常类似,首先在本地查找变量和混合(mixins),如果找不到,则从“父”级作用域继承
  • @var: 0;
    
    div {
        @var: 1px;
        margin: @var; // 1px
    }
  • • 延时加载/懒加载,{}是一个块级作用域,会等全部加载好,所以@var变成了3px,margin就会是3px而不是2px
  • div2 {
        @var: 2px;
        margin: @var; // 3px
        @var: 3px;
    }

上一篇:Less的混合Mixins

下一篇:Less的映射和逻辑函数

Message Board
回复
回复内容不允许为空
留言字数要大于2,小于200!
提交成功,5s后刷新页面!
编程导航

Less的注释和变量

Less的嵌套规则

Less的混合Mixins

Less的运算和作用域

Less的映射和逻辑函数

Less的合并与继承

Copyright © 2020 芋圆社区

Powered by 浙ICP备2020039309号-1

此页面不支持夜间模式!

已进入夜间模式!

已进入普通模式!

搜索框不允许为空

签到成功!经验+5!芋圆币+2!

签到失败!今日已签到!

需要登录社区账号才可以进入!

复制成功
寄,页面未加载完成或页面无锚点