Less 官方文档学习笔记
LESS 是css的一种扩展,它的编辑器是基于node.js 的less.js,将less文件编译成css文件(可压缩)。
其中的概念:
变量:定义变量来代替某个值,只能编译一次,本质是“常量”。例如:
@color:#ffddee;
body {
background-color:@color;
}
输出的结果为:
body {
background-color:#ffddee;
}
变量是延时加载的,只有用到的时候才会加载。变量的查找顺序是从下到上,最近优先。
混合(Mixin): 在一个选择其中调用另外一个选择器,从而拥有其定义的特征。例如:
a {
background-color:red;
.nav;
}
.nav{
font-size:14px;
}
输出的结果是:
a {
background-color:red;
font-size:14px;
}
.nav {
font-size:14px;
}
在混合的时候,如果不想让某个定义显示,可以在定义后加(),如上面的代码,在.nav 的定义处改为.nav() {....} 则只输出 a的定义。就像函数的调用一样。而在调用的时候.nav()等价于.nav 如果.nav中需要使用变量,则可以在调用的时候传入变量,如:
@font:14px;
a {
background-color:red;
.nav(@font);
} .nav(@font) {
font-size:@font;
}
其中,@font 是可以设置默认值的,用法和在PHP中的用法一样,直接在选择器定义的时候设置@font=12px;即可。
当传递多个参数的时候,可以用@argument对象接收所有的参数,然后以数组的方式使用它。如果.nav定义为 .nav(...) 则代表可以接收0到多个参数,如果定义为.nav(@font,...)则@font是必须的,后面还可以传参数,后面的参数可以用@rest全部接收,然后以数组的方式使用即可。
混合门卫(Mixin Guards):使用 guards 来匹配不同的css
例如:
.mixin(@a) when (lightness(@a) >= 60%)
{
.......output a
} .mixin(@a) when (lightness(@a) < 50%) {
.........output b;
} .mixin(@a) default() {
.........output default
}
当调用mixin()时,根据传入不同的参数,匹配条件调用不同的输出定义。其中default() 是所有其他条件不匹配后的操作,这类似于其他语言中的switch case。
另外还可以用函数来检查类型,例如: iscolor, isnumber, iskeyword, isurl, ispixel, ispercentage, isem, isunit 等等。
嵌套:在选择器中定义另一个选择器,这样对应DOM中的结构. 例如:
div {
a {
font-size:14px;
}
}
编译后输出的结果为:
div a {
font-size:14px;
}
继承:在Less中允许选择器继承另一个选择器定义的属性,使用:extend,例如:
.subclass {
background-color:#ccddee;
text-align:center;
}
.class {
color:red
&:extend(.subclass);
}
其中&代表当前的上级对象,即.class本身,也就是说 .a:extend(.b){} 等价于 .a{&:extend(.b);}。上面的输出结果为:
.class {
color:red;
}
.subclass, .class {
background-color:#ccddee;
text-align:center
}
在继承的时候,可以使用@_调用父层级的参数
如果在集成的时候加上all关键字,则会继承所有有关的定义,比如.a:extend(.b all){} 那么会继承所有出现过.b定义的地方的定义
继承的时候,如果在把 !important放在引用的选择器后面,则所有继承下的属性都会带有!important.
注意,:extend必须放在选择器的最后,否则是编译错误的。:extend是不能匹配带有变量的选择器定义的,然而带有变量的选择器定义可以使用:extend
合并属性:在每个需要合并的属性后添加一个+作为标识,则嵌套或者继承时,相同的属性就会合并
@import
使用方法:@import (option) filename; 导入其他文件内容到该Less文件
其中,option的选项有以下值
referrence: 引用一个less文件,但是不对其内部的定义进行输出;
inline: 包含(include) 源文件但是不执行
less: 将导入的文件作为less文件编译,无论其后缀名是什么
css: 将导入的文件作为css文件编译,无论其后缀名是什么
once(default): 只包含一次该文件
multiple: 包含多次该文件。
Less 官方文档学习笔记的更多相关文章
- pm2 官方文档 学习笔记
一.安装 1.安装 npm install pm2 -g 2.更新 npm install pm2 -g && pm2 update pm2 update 是为了刷新 PM2 的守护进 ...
- vue.js 2.0 官方文档学习笔记 —— 01. vue 介绍
这是我的vue.js 2.0的学习笔记,采取了将官方文档中的代码集中到一个文件的形式.目的是保存下来,方便自己查阅. !官方文档:https://cn.vuejs.org/v2/guide/ 01. ...
- Vue2.0 官方文档学习笔记
VUE2.0官方文档 基础部分: 1.VUE简介 Vue是一个基于MVVM的框架,其中M代表数据处理层,V代表视图层即我们在Vue组件中的html部分,VM即M和V的结合层,处理M层相应的逻辑数据,在 ...
- Vue.js官方文档学习笔记(一)起步篇
Vue.js起步 Vue.js介绍 Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架.与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用.Vue 的核心库 ...
- Spark监控官方文档学习笔记
任务的监控和使用 有几种方式监控spark应用:Web UI,指标和外部方法 Web接口 每个SparkContext都会启动一个web UI,默认是4040端口,用来展示一些信息: 一系列调度的st ...
- Vue.js官方文档学习笔记(三)创建Vue实例
创建Vue实例 每个 Vue 应用都是通过用 Vue 函数创建一个新的 Vue 实例开始的: var vm=new Vue({ //选项 }) Vue的设计受到了mvvm的启发 当创建一个 Vue 实 ...
- Vue.js官方文档学习笔记(二)组件化应用的构建
组件化应用的构建 组件化应用允许我们使用小型.独立和通常可复用的组件构建大型应用. Vue注册组件 Vue.component('todo-item',{template:'<li>这是个 ...
- Spring Data Commons 官方文档学习
Spring Data Commons 官方文档学习 -by LarryZeal Version 1.12.6.Release, 2017-07-27 为知笔记版本在这里,带格式. Table o ...
- Spring 4 官方文档学习(十一)Web MVC 框架
介绍Spring Web MVC 框架 Spring Web MVC的特性 其他MVC实现的可插拔性 DispatcherServlet 在WebApplicationContext中的特殊的bean ...
随机推荐
- 【JS】Beginner7:Functions
1.Function=Reusable blocks of code Passed arguments & return a value save functions as the valu ...
- eclipse tomcat内存溢出,加大内存
保存图片失败,请点击这里获得详细信息. 加入 -Xms256M -Xmx512M -XX:PermSize=256m -XX:MaxPermSize=512m
- SQL Server2008 程序设计 汇总 GROUP BY,WITH ROLLUP,WITH CUBE,GROUPING SETS(..)
--SQL Server2008 程序设计 汇总 GROUP BY ,WITH ROLLUP WITH CUBE GROUPING SET(..) /*********************** ...
- POJ 3468 A Simple Problem with Integers 线段树 区间更新
#include<iostream> #include<string> #include<algorithm> #include<cstdlib> #i ...
- dut1305 台阶
Description 如上图所示的一个台阶他的积水量是4 + 2 + 4 + 3 + 4 = 17. 给你一个长度是n的台阶.告诉你每个台阶的高度,求积水量是多少? Input 多组输入数据: 每组 ...
- DATASNAP复杂中间件的一些处理方法
1.中间件需要连接SQL SERVER\ORACLE\MYSQL多种数据库,怎么办? [解决]:可以搞多种数据模块池对应多种数据库,一种数据模块池对应一种数据库 2.中间件业务对象多,在一个单元里面定 ...
- NSDictionary或NSArray与JSON字符串相互转换
在iOS 5 中,苹果引入了一个解析JSON串的NSJSONSerialization类.通过该类,我们可以完成JSON数据与NSDictionary和NSArray之间的转化. 以前,我记得我用的是 ...
- mybatis的$存在安全问题,为什么又不得不用?
1.mybatis的官网关于$和#的字符串替换符号区别描述如下: http://www.mybatis.org/mybatis-3/zh/sqlmap-xml.html#Parameters 上面的意 ...
- CSS入门基础
认识CSS 传统HTML设计网页版面的缺点 CSS的特点 CSS的排版样式 13.1 认识CSS CSS的英文全名是Cascading Style Sheets,中文可翻译为串接式排版样式,并且CSS ...
- 开发日志_Jan.8.2017
这两天继续着手开发碰撞部分. 主要工作是写碰撞类和运动线程类.碰撞主要在于算法,运动线程只要管理好就行了. 之前碰撞测试中(即还未添加完整碰撞算法时)遇到各种bug,疑似机器人和小球的定位点不明所造成 ...