Less 变量

上篇文章介绍了什么是 less。根据上篇文章的介绍,了解到 less 只是一种 css 预编译器,它需要通过编译软件对它进行编译之后生成需要的 css,文件。本文介绍如何正确的使用 less。

考拉

首先来讲 less 编译工具:考拉。

考拉是国人开发的一个全平台的 less 的编译软件编译工具,它的网址是 http://koala-app.com/

less 变量

学习变量它nice的变量这样一个概念。那么这节课主要有这么5个知识点,大家需要。

1. 普通的变量

在 less 中,使用 @ 来定义变量:

less 复制代码
@blue: #5B83AD;

#header {
    color: @blue;
}

这里需要注意一下,所谓的变量实际上只是字符串层面的替换而已,所以其实是常量。

2. 选择器和属性名中使用变量

在选择器和属性名中使用变量和将变量作为值不同;这种情况下需要用到@{}的格式。

less 复制代码
@mySelector: width;
.@{mySelector} {
    @{mySelector}: 960px;
    height: 500px;
}

上述 less 代码在编译之后等价于:

css 复制代码
.width {
    width: 960px;
    height: 500px;
}

3. URL 中的变量

一般来说,在 css 中, URL 基本上都是以下面的这种方式使用的:

css 复制代码
body {
    background-image: url("http://example.com/images/1");
}

而在 less 中,可以使用变量替换 http://example.com 这部分,如下所示:

less 复制代码
@baseURL: http://example.com;
body {
    background-image: url("@{baseURL}/images/1");
}

4. 延迟加载

所谓延迟加载,你可以将其等效成 js 中函数的提升,也就是说:无论变量定义在哪里,在编译的时候总是会提升到作用域的最上方,因此下面两种写法是等效的:

less 复制代码
@a: 9%;
@var: @a;

.lazy {
    width: @var;
}

等效于:

less 复制代码
.lazy {
    width: @var;
}

@var: @a;
@a: 9%;

5. 变量的作用域

如果在同一个定义域定义了相同的 less 变量,那么通过提升作用可以知道,后定义的会覆盖先定义的值。而在不同定义域下定义的同名变量,采用的是就近原则生效。

less 复制代码
@var: 0;
.class {
    @var: 1;
    .brass {
        @var: 2;
        three: @var;
        @var: 3;
    }
    one: @var;
}

经过提升之后最内侧的 @var: 3;覆盖了@var: 2;的值;最终结果为:

css 复制代码
.class {
    .brass {
        three: 3;
    }
    one: 1;
}
相关推荐
之歆12 天前
Day23_Bootstrap 前端框架完全指南:从栅格系统到组件化开发
开发语言·前端·javascript·前端框架·bootstrap·ecmascript·less
之歆13 天前
Day21_电商详情页核心技术实战:从LESS预处理到复杂交互实现
开发语言·前端·javascript·css·交互·less
之歆13 天前
Day19_LESS 完全指南——从入门到工程实践
前端·css·less
之歆14 天前
Day22_CSS 函数完全指南:从变量到数学计算的现代样式编程
开发语言·前端·javascript·css·tensorflow·less
之歆14 天前
Day20_PC 端电商商品详情页前端实战:从布局到放大镜与选项卡
开发语言·前端·javascript·css·less
剑神一笑22 天前
Linux less 命令深度解析:从源码看分页器的设计智慧
linux·运维·less
其实防守也摸鱼1 个月前
Sqlmap:选取sqli-labs中less-8进行sqlmap注入测试
前端·css·网络·安全·web安全·less·sqli-labs
他是龙5511 个月前
SQLi-Labs 通关笔记(Less-38 ~ Less-53):堆叠注入与 ORDER BY 注入
数据库·笔记·less
CreativeDev1 个月前
Sass (Scss) 与 Less 的区别与选择
less·sass·scss
军军君011 个月前
数字孪生监控大屏实战模板:固体颗粒物监管平台
前端·javascript·vue.js·typescript·前端框架·echarts·less