Skip to content
Have a clear structure

变量(Variables)

基本使用

  • @ 声明变量,作为普通属性值使用
less
@width: 50px;
@height: 100px;

div {
  width: @width;
  height: @height;
}

变量插值(Variable Interpolation)

  • 变量用于选择器名、属性名、URL、@import 语句
less
@my-selector: banner;

// 需要添加 {}
.@{my-selector} {
  font-weight: bold;
  line-height: 40px;
  margin: 0 auto;
}
less
@property: color;

.widget {
  @{property}: #0ee;
  background-@{property}: #999;
}
less
// Variables
@images: '../img';

// Usage
body {
  color: #444;
  background: url('@{images}/white-sand.png');
}
less
// Variables
@themes: '../../src/themes';

// Usage
@import '@{themes}/tidal-wave.less';

延迟加载(Lazy Evaluation)

TIP

Lazy Evaluation

当定义一个变量两次时,使用变量的最后一个定义,从当前范围向上搜索。

当一个变量被声明多次,会取最后一次的值,并从当前作用域往外寻找变量。

less
@var: 0;
.class {
  @var: 1;
  .brass {
    @var: 2;
    three: @var;
    @var: 3;
  }
  one: @var;
}
css
.class {
  one: 1;
}
.class .brass {
  three: 3;
}

属性名变量(Properties as Variables)

TIP

Properties as Variables

您可以使用$prop 语法轻松地将属性视为变量

less
.widget {
  color: #efefef;
  background-color: $color;
}
css
.widget {
  color: #efefef;
  background-color: #efefef;
}