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

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

时间2025-06-20 18:11:11分类IT科技浏览4685
导读:系列文章目录 一、继承...

系列文章目录

一              、继承

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
任务栏图标调大小教程(任务栏图标调大小教程)