less入门到进阶

最近在阅读Antd的源码,里面的样式主要使用的是less.js,我发现自己以前写的less确实太粗浅了,这里主要记录一些学习到的新知识。下面从最简单的讲起吧

入门

变量(Variables)

@width: 10px; 
@height: @width + 10px; 
#header { width: @width; height: @height; }

编译
#header { width: 10px; height: 20px; }

混合(Mixins)

混合(Mixin)是一种将一组属性从一个规则集包含(或混入)到另一个规则集的方法。

.bordered { border-top: dotted 1px black;  }
.post { color: red; .bordered(); }

编译
.post a { color: red; 
border-top: dotted 1px black;}

calc()

为了与 CSS 保持兼容,calc() 并不对数学表达式进行计算,但是在嵌套函数中会计算变量和数学公式的值。

@var: 50vh/2;
width: calc(50% + (@var - 20px));
// 结果是 calc(50% + (25vh - 20px))

转义(~)

转义(Escaping)允许你使用任意字符串作为属性或变量值。任何 ~"anything"~'anything' 形式的内容都将按原样输出

@min768: ~"(min-width: 768px)";
.element { 
@media @min768 { 
font-size: 1.2rem; 
} 
}

编译为
@media (min-width: 768px) { 
.element { font-size: 1.2rem; } 
}

映射(Maps)

将混合(mixins)和规则集(rulesets)作为一组值的映射(map)使用。

#colors() { primary: blue; secondary: green; } 
.button { 
color: #colors[primary];
border: 1px solid #colors[secondary];
}

编译
.button { color: blue; border: 1px solid green; }

导入(Importing)

“导入”的工作方式和你预期的一样。你可以导入一个 .less 文件,此文件中的所有变量就可以全部使用了。如果导入的文件是 .less 扩展名,则可以将扩展名省略掉:

@import "library"; // library.less
@import "typo.css";

进阶

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值