Less中Css预处理器
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预处理器的更多相关文章
- CSS 预处理器中的循环
本文由 nzbin 翻译,黄利民 校稿.未经许可,禁止转载! 英文出处:css-tricks.com 发表地址:http://web.jobbole.com/91016/ 如果你看过老的科幻电影,你一 ...
- css预处理器sass使用教程(多图预警)
css预处理器赋予了css动态语言的特性,如变量.函数.运算.继承.嵌套等,有助于更好地组织管理样式文件,以及更高效地开发项目.css预处理器可以更方便的维护和管理css代码,让整个网页变得更加灵活可 ...
- 关于前端CSS预处理器Sass的小知识!
前面的话 "CSS预处理器"(css preprocessor)的基本思想是,用一种专门的编程语言,进行网页样式设计,然后再编译成正常的CSS文件.SASS是一种CSS的开发工 ...
- CSS预处理器Sass、LESS 和 Stylus
CSS 预处理器技术已经非常的成熟,而且也涌现出了越来越多的 CSS 的预处理器框架.本文向你介绍使用最为普遍的三款 CSS 预处理器框架,分别是 Sass.Less CSS.Stylus. 首先我们 ...
- Myth – 支持变量和数学函数的 CSS 预处理器
Myth 是一个预处理器,有点类似于 CSS polyfill .Myth 让你写纯粹的 CSS,同时还让你可以使用类似 LESS 和 Sass 的工具.您仍然可以使用变量和数学函数,就像你在其它预处 ...
- 为您详细比较三个 CSS 预处理器(框架):Sass、LESS 和 Stylus
CSS 预处理器技术已经非常的成熟,而且也涌现出了越来越多的 CSS 的预处理器框架.本文向你介绍使用最为普遍的三款 CSS 预处理器框架,分别是 Sass.Less CSS.Stylus. 首先我们 ...
- 160907、CSS 预处理器-Less
CSS 预处理器是什么?一般来说,它们基于 CSS 扩展了一套属于自己的 DSL,来解决我们书写 CSS 时难以解决的问题: 语法不够强大,比如无法嵌套书写导致模块化开发中需要书写很多重复的选择器: ...
- CSS预处理器实践之Sass、Less大比拼[转]
什么是CSS预处理器? CSS可以让你做很多事情,但它毕竟是给浏览器认的东西,对开发者来说,Css缺乏很多特性,例如变量.常量以及一些编程语法,代码难易组织和维护.这时Css预处理器就应运而生了.Cs ...
- CSS预处理器Sass(Scss)、Less、Stylus
CSS 预处理编译器能让我成程序化其的方式编写CSS代码,可以引入CSS中没有的变量.条件.函数等特性,从而让代码更简单易维护,但一般按预处理器语法编写的代码无法直接在浏览器中运行,需用通过工具比如g ...
随机推荐
- ceph新加存储节点
随着业务的扩展,原有的存储池不够用了,这时我们就需要给ceph添加新的存储节点,这里以新加ceph-host-05节点为例 准备工作 给所有节点hosts文件添加10.30.1.225 ceph- ...
- python三大流程
一.三大流程 1. 顺序:按照顺序依次逐行执行代码的过程.自左向右,自上而下 2. 分支:程序按照不同的条件执行不同的处理代码的过程. 分支分为单分支,双分支,多分支 经常用到的分支结构是if语句 i ...
- Java与C#
Java和C#都是编程的语言,它们是两个不同方向的两种语言 相同点: 他们都是面向对象的语言,也就是说,它们都能实现面向对象的思想(封装,继承,多态) 区别: 1.c#中的命名空间是namespace ...
- Java源码研究001:关于List的并发修改异常
这个就是实现一个简单的 ArrayList 的遍历,如果存在一个为"aaa"的值,就添加一个"ccc" package Array; import java.u ...
- 微服务 - 服务注册发现(三)Consule
Consul 集群 在consul方案中,每个提供服务的节点上都要部署和运行consul的agent,所有运行consul agent节点的集合构成consul cluster.consul agen ...
- flowable的多人会签和一票否决
项目结构: 接下来代码: Duorenhuiqian.bpmn20.xml: <?xml version="1.0" encoding="UTF-8"?& ...
- idea2020 没有 Autoscroll from Source
2018版本: 2020版本: 最后在官网的网站中找到了解决方案,原来是改名了: 网址:https://intellij-support.jetbrains.com/hc/en-us/communit ...
- Qt学习笔记-制作一个文本编辑器
创建一个MainWindow工程.添加一个TextEdit.垂直布局. 在menu上面创建新的action. 在新建的时候判断文本有没有被修改. 下面,将某个文件打开读入到TextEdit中. 保存文 ...
- 指令重排序 as-if-serial
笔者认为看完一本书或刚要了解完一个知识点 最好自己先运行一些DEMO 自己尝试着去了解下各种意思 这样知识点最终一定是你的.靠死记硬背的讨论或简单的粗暴的看下资料 脑子里肯定还是一团浆糊. p.p ...
- Mono for android,Xamarin点击事件的多种写法
(一)原本java的写法(相信很多是学过java的): 需要实现接口View.IOnClickListener,最好也继承类:Activity,因为View.IOnClickListener接口又继承 ...