less预处理器详解(Less预处理——继承、导入、条件表达式和函数)
系列文章目录
一 、继承
1 、extend 关键字的使用
extend 是 Less 的一个伪类 ,它可继承所匹配声明中的全部样式
index.less 文件
.animation { transition: all .3s ease-out; .hide { transform: scale(0); } } #main { &:extend(.animation); } #con { &:extend(.animation .hide); }index.css 文件
自动转义后的 css 文件内容如下 .animation, #main { transition: all 0.3s ease-out; } .animation .hide, #con { transform: scale(0); }2、all 全局搜索替换
使用选择器匹配到的全部声明
index.less 文件
#main { width: 200px; } #main { &:after { content: Less is more. } } #wrap:extend(#main all) { height: 200px; }index.css 文件
自动转义后的 css 文件内容如下 #main, #wrap { width: 200px; } #main:after, #wrap:after { content: Less is more.; } #wrap { height: 200px; }3 、减少代码的重复性
extend 与方法的最大差别 ,就是 extend 是同个选择器共用同一个声明 ,而方法是使用自己的声明 ,这就增加了代码的重复性
index.less 文件
.method { width: 200px; &:after { content: Less is more; } } #main { .method }index.css 文件
自动转义后的 css 文件内容如下 .method { width: 200px; } .method:after { content: Less is more; } #main { width: 200px; } #main:after { content: Less is more; }二 、导入
1 、文件导入
nav.less 文件
定义要导入的文件的样式 #nav { width: 100%; height: 200px; background: pink; }index.less 文件
把 nav.less 文件导入进来 @import nav;index.css 文件
自动转义后的 css 文件内容如下 #nav { width: 100%; height: 200px; background: pink; }2 、reference
Less 中最强大的特性 ,使用引入的Less文件 ,但不会编译它
nav.less 文件
定义要导入的文件的样式 #nav { width: 100%; height: 200px; background: pink; }index.less 文件
把 nav.less 文件导入进来 @import (reference) nav;index.css 文件
// 不会编译 ,内容为空3 、once
@import 语句的默认行为 。这表明相同的文件只会被导入一次 ,而随后的导入文件的重复代码都不会解析
nav.less 文件
定义要导入的文件的样式 #nav { width: 100%; height: 200px; background: pink; }index.less 文件
把 nav.less 文件导入进来 @import (once) nav; @import (once) nav;index.css 文件
自动转义后的 css 文件内容如下 导入多次也只有一次生效 #nav { width: 100%; height: 200px; background: pink; }4 、multiple
可以多次导入
nav.less 文件
定义要导入的文件的样式 #nav { width: 100%; height: 200px; background: pink; }index.less 文件
把 nav.less 文件导入进来 @import (multiple) nav; @import (multiple) nav;index.css 文件
自动转义后的 css 文件内容如下 可以被导入多次 ,生效多次 #nav { width: 100%; height: 200px; background: pink; } #nav { width: 100%; height: 200px; background: pink; }三 、条件表达式
1 、带条件的混合
格式:when () {}
index.less 文件
.mixin(@a) when(lightness(@a) >= 50%) { background: black; } .mixin(@a) when(lightness(@a) < 50%) { background: white; } .mixin(@a) { color: @a; } .class1 { .mixin(#ddd); } .class2 { .mixin(#555); }index.css 文件
自动转义后的 css 文件内容如下 .class1 { background: black; color: #ddd; } .class2 { background: white; color: #555; }2 、类型检测函数
检测值的类型
iscolor isnumber isstring iskeyword isurlindex.less 文件
.mixin(@a:#fff; @b:0) when(isNumber(@b)) { color: @a; font-size: @b; } .mixin(@a, @b:black) when (isColor(@b)) { font-size: @a; color: @b; } .class { .mixin(#666) }index.css 文件
自动转义后的 css 文件内容如下 .class { color: #666; font-size: 0; font-size: #666; color: black; }3、单位检测函数
检测一个值除了数字是否是一个特定的单位
ispixel:px ispercentage:% isem:em isunit:intindex.less 文件
.mixin(@a) when(ispixel(@a)) { width: @a; } .class { .mixin(960px); }index.css 文件
自动转义后的 css 文件内容如下 .class { width: 960px; }四 、函数
示例:color() 函数,解析颜色 ,将代表颜色的字符串转换为颜色值
index.less 文件
body { color: color("#f60"); background: color("red"); }index.css 文件
自动转义后的 css 文件内容如下 body { color: #f60; background: #ff0000; }五 、写在最后
Less 官网链接
Less 入门到此结束 ,这些已经可以应对基本的开发 。
如果你想学习更多内容,那么推荐去 Less 官网进行深入学习 。
这里是 前端杂货铺 ,期待您的 三连 + 关注
创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!