Less.js

安装

npm install -g less


变量

basic

变量采用@进行变量定义。变量可以直接参加运算。

@width:100px;
.variables{
width:@width;
height: @width+50px; (变量运算之后,不加px单位也可)
}

作用域 scope

Less 中的作用域与 CSS 中的作用域非常类似。首先在本地查找变量和混合(mixins),如果找不到,则从“父”级作用域继承。

<div id="nesting">
<div>
<div />
</div>
</div>
#nesting{
width:200px;
height:300px;
background-color: @color;
@color:#66aa44; //绿色
div{
width: 200px;
height: 150px;
background-color:#ff0000;
@color:#7a6ff4;//蓝紫色
div{
width: 200px;
height: 75px;
background-color:@color;
}
}
}

第三个div的background-color是使用的变量@color,但是本地并没有这个变量定义,便在上一个父级寻找此变量。在上一级寻找到变量之后,即使再上一级也定义过此变量,也不采用。


Mixins

basic

Less.js的Mixin是直接在less代码里直接加入选择器和()。使用id选择器#作为被mix的代码也可以。

.a{
color:#000000;
background-color: shade((#ff0000),50%) ;//棕色
border:3px solid black
}
.b{
.a(); /* #a()也可行,如果定义了 */
background-color: #00ff00;//绿色
}

如果被mix的代码重写了mix代码中的某一个属性,重写代码生效。(棕色变为了绿色)

bundle

出于方便的原因,可以将mix代码集合到bundle里然后进行分发。

 <div class="div-style" id="nesting" />
#bundle(){
.a{
color:#000000;
background-color: #ff9843 ;
border:3px solid black
}
.blank{
color:#883743
}
}
.div-style{
#bundle.a();
}

#bundle非关键字,可以使用其他变量代替

#test(){
.a{
color:#000000;
background-color: #ff9987 ;
border:3px solid black
}
}
.div-style{
#test.a();
}

映射 Maps

将混合(mixins)和规则集(rulesets)作为一组值的映射(map)使用。

我的理解:将相同属性的变量集合到一起,需要使用时再进行分发。

#colors(){
first:#a9ff62;
secondary:#f7f4a3
};
#test(){
.a{
color:#000000;
background-color:#colors[first] ;
border:3px solid black
}
}
.div-style{
#test.a();
}


嵌套

嵌套的规则和Js的规则几乎一致。

<div id="nesting">
<div>
<div />
</div>
</div>
#nesting{
width:200px;
height:300px;
background-color: @color;
@color:#66aa44; //绿色
div{
width: 200px;
height: 150px;
background-color:#ff0000;
@color:#7a6ff4;//蓝紫色
div{
width: 200px;
height: 75px;
background-color:@color;
}
}
}

也可以使用&:伪元素的方式,嵌套伪元素结构。


函数

函数作为less一个非常重要的功能,能够帮助js处理一些非逻辑层面的计算。

.a{
color:#000000;
background-color: shade((#ff0000),50%) ;
border:3px solid black
}

颜色处理函数shade(),可以将被处理颜色(代码里是#ff0000),按照距离#000000的权重,进行变色(简单说就是加深多少 )

Less中Css预处理器的更多相关文章

  1. CSS 预处理器中的循环

    本文由 nzbin 翻译,黄利民 校稿.未经许可,禁止转载! 英文出处:css-tricks.com 发表地址:http://web.jobbole.com/91016/ 如果你看过老的科幻电影,你一 ...

  2. css预处理器sass使用教程(多图预警)

    css预处理器赋予了css动态语言的特性,如变量.函数.运算.继承.嵌套等,有助于更好地组织管理样式文件,以及更高效地开发项目.css预处理器可以更方便的维护和管理css代码,让整个网页变得更加灵活可 ...

  3. 关于前端CSS预处理器Sass的小知识!

    前面的话   "CSS预处理器"(css preprocessor)的基本思想是,用一种专门的编程语言,进行网页样式设计,然后再编译成正常的CSS文件.SASS是一种CSS的开发工 ...

  4. CSS预处理器Sass、LESS 和 Stylus

    CSS 预处理器技术已经非常的成熟,而且也涌现出了越来越多的 CSS 的预处理器框架.本文向你介绍使用最为普遍的三款 CSS 预处理器框架,分别是 Sass.Less CSS.Stylus. 首先我们 ...

  5. Myth – 支持变量和数学函数的 CSS 预处理器

    Myth 是一个预处理器,有点类似于 CSS polyfill .Myth 让你写纯粹的 CSS,同时还让你可以使用类似 LESS 和 Sass 的工具.您仍然可以使用变量和数学函数,就像你在其它预处 ...

  6. 为您详细比较三个 CSS 预处理器(框架):Sass、LESS 和 Stylus

    CSS 预处理器技术已经非常的成熟,而且也涌现出了越来越多的 CSS 的预处理器框架.本文向你介绍使用最为普遍的三款 CSS 预处理器框架,分别是 Sass.Less CSS.Stylus. 首先我们 ...

  7. 160907、CSS 预处理器-Less

    CSS 预处理器是什么?一般来说,它们基于 CSS 扩展了一套属于自己的 DSL,来解决我们书写 CSS 时难以解决的问题: 语法不够强大,比如无法嵌套书写导致模块化开发中需要书写很多重复的选择器: ...

  8. CSS预处理器实践之Sass、Less大比拼[转]

    什么是CSS预处理器? CSS可以让你做很多事情,但它毕竟是给浏览器认的东西,对开发者来说,Css缺乏很多特性,例如变量.常量以及一些编程语法,代码难易组织和维护.这时Css预处理器就应运而生了.Cs ...

  9. CSS预处理器Sass(Scss)、Less、Stylus

    CSS 预处理编译器能让我成程序化其的方式编写CSS代码,可以引入CSS中没有的变量.条件.函数等特性,从而让代码更简单易维护,但一般按预处理器语法编写的代码无法直接在浏览器中运行,需用通过工具比如g ...

随机推荐

  1. Vue必须必须要注意的几个细节

    1.每次执行完,尽量npm run dev 一次,有时候又缓存问题 2.安装sass 一.使用save会在package.json中自动添加.因为sass-loader依赖于node-sass npm ...

  2. Mysql 52条SQL语句性能优化策略汇总

    1.对查询进行优化,应尽量避免全表扫描,首先应考虑在where及order by涉及的列上建立索引. 2.应尽量避免在where子句中对字段进行null值判断,创建表时NULL是默认值,但大多数时候应 ...

  3. CentOS 8 部署 ASP.NET Core 3.1 应用程序 kestrel+Nginx IIS+kestrel

    vs2019发布到IIS  下载文档https://files.cnblogs.com/files/netlock/%E4%BD%BF%E7%94%A8VS2019%E5%8F%91%E5%B8%83 ...

  4. 浅谈 WebRTC 的 Audio 在进入 Encoder 之前的处理流程

    在 WebRTC 中,Audio 数据在被送入编码器之前,有 2 大部分需要特别关注,一是数据采集,二是 Audio Processing. 作者:方来,技术专家,从事 voip 应用开发. 数据采集 ...

  5. .NET Core AWS S3云存储

    前言 最近有需要用到AWS S3云存储上传附件,这里对利用.NET或.NET Core在调用SDK APi需要注意的一点小问题做个记录,或许能对后续有用到的童鞋提供一点帮助 AWS S3云存储 官方已 ...

  6. js--数组的reduce()方法的使用介绍

    前言 阅读文章之前先来考虑一个问题,如何去实现迭代一个数组,并且把它累加到一个值中?首先能够想到的是设置一个初始值,然后通过循环遍历这个数组,将数组中的值一项一项累加起来,然后返回这个设置的值就是最终 ...

  7. eclipse再见,android studio 新手入门教程(一)基本设置

    写在前面: 作为一个刚半只脚踏入android开发的新手,在使用eclipse开发了两个自我感觉不甚成熟的商城类app之后,遇到了一些问题,总结为如下: 代码复用性.findviewById,oncl ...

  8. Win10环境安装node.js和npm

    Node.js和npm的关系 Node.js是一个基于Chrome V8引擎的JavaScript运行环境,使用了事件驱动非阻塞式I/O模型. npm(Node Package Manager)是一个 ...

  9. ViperX 300 Robot Arm 机械臂 “5自由度和360°全方位旋转”

  10. uniapp H5引入腾讯地图

    在网上搜索了许多关于uniapp引入腾讯地图的方法都以失败告终,我开发的应用主要使用于H5,小程序与H5是不同的sdk,就不在这说了,况且小程序有手把手教学,可参考腾讯地图官网https://lbs. ...