首页IT科技less预处理器详解(Less预处理——继承、导入、条件表达式和函数)

less预处理器详解(Less预处理——继承、导入、条件表达式和函数)

时间2025-08-04 06:21:39分类IT科技浏览5115
导读:系列文章目录 一、继承...

系列文章目录

一                、继承

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 isurl

index.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:int

index.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版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
maven依赖包报错(两把利斧解决maven的类包冲突问题 Spring,企业应用 Java ITeye论坛) 看新闻也能赚钱的十大软件有哪些免费(通过看新闻赚钱的软件是什么软件-赚收益是入口,出爆款是出口)