less笔记-变量

一、less变量的直观优点

比较下面CSS 写法与 less写法:

css:

a,
.link {
  	color: #428bca;
}
.widget {
  	color: #fff;
  	background: #428bca;
}
less:

// Variables
@link-color: #428bca; // sea blue
@link-color-hover:  darken(@link-color, 10%);

// Usage
a,
.link {
  	color: @link-color;
}
a:hover {
  	color: @link-color-hover;
}
.widget {
  	color: #fff;
  	background: @link-color;
}

从上面可看出,虽然less多了个变量的定义,但其定义的位置是确定的,便于修改维护(maintain),尤其在需要的样式值使用地方较多时。而css 若要修改某个样式,则只能在每个出现的地方逐一修改。


二、less变量的其它用法

less变量除了可用于属性值外,还能用于selector name、property name、url、@import statement。(基础版本1.60)

1、用于selector name:

@mySelector: banner;

// Usage
.@{mySelector} {
  	font-weight: bold;
  	line-height: 40px;
  	margin: 0 auto;
}
编译后为:

.banner {
  	font-weight: bold;
 	line-height: 40px;
  	margin: 0 auto;
}


2、用于property name:

@property: color;

.widget {
 <span style="white-space:pre">	</span>@{property}: #0ee;
  <span style="white-space:pre">	</span>background-@{property}: #999;
}
编译后:

@{property}代替为color。


3、用于URL

// Variables
@images: "../img";

// Usage
body {
  	color: #444;
  	background: url("@{images}/white-sand.png");
}
编译为:

body {
  	color: #444;
  	background: url("../image/white-sand.png");
}

4、用于@import语句

同理。

共同点:变量用于此四种情况下,引用时格式均为:@{变量名}。


三、变量的lazy loading

@var: 0;
.class {
  	 @var: 1;
  	 .brass {
    		@var: 2;
   		three: @var;
   		@var: 3;
  	}
  	one: @var;
}
lazy loading的含义在于变量的定义位置不必要在其使用位置之前,但其使用范围仍然满足内层优先的原则,且同级定义的相同变量,后一个生效(即将会前一个覆盖)。

上面的代码编译后为:

.class {
  	one: 1; 
}
.class .brass {
 	three: 3;
}
one值为1,因为该处仅有可能访问到值为0和1的变量var,值为1的优先。three为3,因为此处可能访问到所有定义的变量var,值为2与3的var优先级较高,且值为3的var后定义,覆盖了值为2的var,最终使用的var值即为3。


四、默认值

使用变量后定义的覆盖先定义的及lazy loading特性,可在变量未定义(位置上)之前使用某个变量。

// library
@base-color: green;
@dark-color: darken(@base-color, 10%);

// use of library
@import "library.less";
@base-color: red;
编译后,dark-color为红黑,而非绿黑。表达的含义即,即使将@base-color:green去掉,变量dark-color也能引用到此位置之前还未定义的base-color变量。


笔记参考:http://www.runoob.com/manual/lessguide/features/#variables-feature-variable-interpolation


















  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值