less学习笔记2-语言特性(变量)

码完第一篇后才发现文本编辑器可以改成Markdown,试了下Markdown,才发现上一篇的排版真的好糟糕。本人也会努力将less官网的内容翻成中文,并且尽可能的讲清楚。希望能给想学less的前端新人带来一点收获吧,也能增强我自己的学习效果。以后可能会较频繁的对文章进行修改,努力写得更加浅显易懂。


概述

在你的样式表中一个值被重复使用多次的情况很常见:

.link{
    color: #ff4e56;
}
.widget{
    color: #fff;
    background-color: #ff4e56;
}

变量可以使你的代码更容易维护,通过一个值来控制所有相同的值。

@color: #ff4e56;
.link{
    color: @color;
}
.widget{
    color: #fff;
    background-color: @color;
}

变量插入

上面的例子实现了在css规则中使用变量来控制值,但是变量也可以使用在其他的地方,比如选择器的名字,属性的名字,URLs和@import 声明中

选择器(v1.4.0)
@selector: banner;
.@{selector}{
    font-size: 16px;
    color: #fff;
    background-color: #ff4e56;
}

编译为:

.banner{
    font-size: 16px;
    color: #fff;
    background-color: #ff4e56;
}
URLs
@imgUrl: ".../image";
.listImg{
    background: url("@{imgUrl}/banner.png");
}
import 声明(v1.4.0)

语法:@import "@{themes}/test.less";
在v2.0.0之前,只有定义声明在根(root)或者当前作用范围内的变量才会被认定为变量,查找变量的时候只有会在当前文件和导入文件中查找。

@url: "../less";
@import "@{url}/test.less";
属性(v1.6.0)
@property: color;
.test{
    @{property}: blue;
    background-@{property}: #333;
}

编译为:

.test{
    color: blue;
    background-color: #333;
}
变量名

可以使用一个变量名去定义另外一个变量

@name: "hello world";
@var: "name";
content: @@var;

编译为:

content: "hello world";

延迟加载(lazy loading)

变量会延迟加载,不一定要在使用之前定义声明

有效的less代码:

.lazy-load{
    width: @var;
}
@var: @a;
@a: 50%;

下面也是有效的代码:

.lazy-load{
    width: @var;
    @a: 50%;
}
@var: @a;
@a: 100%;

上面两部分代码均会编译成:

.lazy-load{
    width: 50%;
}

当一个变量被定义声明了两次,最后一次定义声明的变量将会被使用,查找变量的时候从当前作用范围向上级搜索。这跟css本身最后一次被定义的属性将会被使用很相似。

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

编译为:

.class{
    one: 1;
 }
.class .brass{
    three: 3;
}
默认变量

有时候我们需要默认变量--是一种在变量还没定义好之前,定义一个变量。该功能不是必须的,因为可以很轻易的复写一个变量通过在所需的地方进行定义声明。

@base-color: green;

@import "test.less";
@base-color: red;
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,981评论 19 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,970评论 6 342
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,466评论 25 708
  • 作者 沈姜 14 竖河镇 不知怎么,公公自从写了自己的简历,就像一下子打开了一条小河的闸门。这个星期里,他...
    姜苏阅读 349评论 0 0
  • 人生,是一种责任,既然活着,就应担起生存的职责,不是因为执着,而是因为值得。 人生的路,深一脚,浅一脚,悲伤在路上...
    德普弟弟阅读 308评论 0 1