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

作者: 程恺 | 来源:发表于2017-09-02 09:35 被阅读134次

码完第一篇后才发现文本编辑器可以改成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;

相关文章

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

    码完第一篇后才发现文本编辑器可以改成Markdown,试了下Markdown,才发现上一篇的排版真的好糟糕。本人也...

  • Less 学习笔记

    Less是一种动态样式语言 特性 LESS 将 CSS 赋予了动态语言的特性,如 变量, 继承, 运算, 函数. ...

  • Less即学即用

    Less是什么? Less是一种动态样式语言,LESS 将 CSS 赋予了动态语言的特性,如 变量, 继承, 运算...

  • Less语言特性 - 变量

    LESS允许使用 @ 符号定义变量。 变量分配使用冒号(:)完成。LESS中声明变量的格式为“@变量名:变量值”。...

  • less简述

    什么是less? 一种 动态 样式 语言. LESS 将 CSS 赋予了动态语言的特性,如 变量, 继承, 运算,...

  • Gulp实践后编译器与less预编译器

    less Less 是一门 CSS 预处理语言,它扩展了 CSS 语言,增加了变量、Mixin、函数等特性,使 C...

  • less与scss有什么区别呢?

    less与scss是什么?Less也是一种动态样式语言. 对CSS赋予了动态语言的特性,如变量,继承,运算, 函数...

  • Less语言特性 - 变量范围

    变量范围指定可用变量的位置。 变量将从本地作用域搜索,如果它们不可用,则编译器将从父作用域搜索。 这就好比js里面...

  • less用法总结

    什么是less less是一门预处理语言,扩展了css语言,增加了变量、Mixin、函数等特性,使css更易维护和...

  • CSS预处理Less

    Less是一门CSS预处理语言,它扩展了CSS语言,增加了变量、混合、函数等特性,使CSS更易维护和扩展。Less...

网友评论

    本文标题:less学习笔记2-语言特性(变量)

    本文链接:https://www.haomeiwen.com/subject/zblkjxtx.html