Web/Css 预处理语言的 Less 的使用 04
作者:Jeannette
- 2021 年 12 月 12 日
本文字数:1472 字
阅读完需:约 5 分钟
loop 循环
通过 Loop,可以设置递归次数,循环调用
// 编译前
.loop(@counter) when (@counter > 0) {
.loop((@counter - 1)); // next iteration
width: (10px * @counter); // code for each iteration
}
div {
.loop(5); // launch the loop
}
// 编译后
div {
width: 10px;
width: 20px;
width: 30px;
width: 40px;
width: 50px;
}
复制代码
// 编译前
.generate-columns(4);
.generate-columns(@n, @i: 1) when (@i =< @n) {
.column-@{i} {
width: (@i * 100% / @n);
}
.generate-columns(@n, (@i + 1));
}
// 编译后
.column-1 {
width: 25%;
}
.column-2 {
width: 50%;
}
.column-3 {
width: 75%;
}
.column-4 {
width: 100%;
}
复制代码
Merge 合并
通过 +
或者 +-
将不同位置的两个相同属性名的语句,可以进行合并
+
符号合并后,会通过 ,
进行分割
+-
符号合并后,会通过 space
空格 进行分割
// 编译前
.mixin() {
// 通过+号标记合并
box-shadow+: inset 0 0 10px #555;
}
.myclass {
.mixin();
// 通过+号标记合并
box-shadow+: 0 0 20px black;
}
// 编译后
.myclass {
box-shadow: inset 0 0 10px #555, 0 0 20px black;
}
复制代码
Selectors 符号
&: 符号(生成伪类选择器)
// 编译前
a {
color: blue;
&:hover {
color: green;
}
}
// 编译后
a {
color: blue;
}
a:hover {
color: green;
复制代码
&- : 符号(类名链接)
// 编译前
.button {
&-ok {
background-image: url("ok.png");
}
&-cancel {
background-image: url("cancel.png");
}
&-custom {
background-image: url("custom.png");
}
}
// 编译后
.button-ok {
background-image: url("ok.png");
}
.button-cancel {
background-image: url("cancel.png");
}
.button-custom {
background-image: url("custom.png");
}
复制代码
&& 多种变换
// 编译前
.link {
& + & {
color: red;
}
& & {
color: green;
}
&& {
color: blue;
}
&, &ish {
color: cyan;
}
}
// 编译后
.link + .link {
color: red;
}
.link .link {
color:green;
}
.link.link {
color:blue;
}
.link, .linkish {
color: cyan;
}
复制代码
// 编译前
// 父子嵌套
.grand {
.parent {
& > & {
color: red;
}
& & {
color: green;
}
&& {
color: blue;
}
&, &ish {
color: cyan;
}
}
}
// 编译后
.grand .parent > .grand .parent {
color: red;
}
.grand .parent .grand .parent {
color: green;
}
.grand .parent.grand .parent {
color: blue;
}
.grand .parent,
.grand .parentish {
color: cyan;
}
复制代码
& 改变选择器的顺序
// 编译前
.header {
.menu {
border-radius: 5px;
// 通过在.no-borderraidus 加入& 符号
.no-borderradius & {
background-image: url('images/button-background.png');
}
}
}
// 编译后
.header .menu {
border-radius: 5px;
}
.no-borderradius .header .menu {
background-image: url('images/button-background.png');
}
复制代码
& +& 相邻选择组合
// 编译前
p, a, ul, li {
border-top: 2px dotted #366;
& + & {
border-top: 0;
}
}
// 编译后
p,
a,
ul,
li {
border-top: 2px dotted #366;
}
p + p,
p + a,
p + ul,
p + li,
a + p,
a + a,
a + ul,
a + li,
ul + p,
ul + a,
ul + ul,
ul + li,
li + p,
li + a,
li + ul,
li + li {
border-top: 0;
}
复制代码
划线
评论
复制
发布于: 3 小时前阅读数: 3
版权声明: 本文为 InfoQ 作者【Jeannette】的原创文章。
原文链接:【http://xie.infoq.cn/article/13b0d404a7cc69b39b9d15f74】。未经作者许可,禁止转载。
Jeannette
关注
一位小码农…… 2019.07.19 加入
科学技术是第一生产力
评论