less从入门到掌握

less作为css的增强器被广泛使用在多个框架中,虽然less编译后还是css,但他能让css变得简单便利。同样的还有stylus,sass。或许今后这两个也会被单独拿出来写一篇整理文章。

less的注释
  • 注释会显示在编译后的css文件中:/**/
  • 注释不会显示在编译后的css文件中://
less的变量

使用@定义变量:@primary-color: pink; @m: margin; @selector: .name

  • 可以作为属性的值使用
  • 作为选择器和属性名:@{selector} @{m}: 0
  • 作为url:@{url}
  • 有延迟加载的特性
  • 有块级作用域
less的嵌套
  • 基本嵌套规则
ul{
	li{
		font-size: 12px;
	}
}
  • &的使用:&指代嵌套中的父标签(如果不加会变成:a :hover)
a{
	&:hover{
		background-color: black;
	}
}
less的混合

混合就是将一系列属性从一个规则集引入到另一个规则集的方式

  1. 普通混合(重复代码提取)
.params{
	width: 200px;
	height: 200px;	
}
.inner1{
	.params;
}
.inner2{
	.params;
}
  1. 不带输出的混合
    同上代码,在.params后加(),使其不会显示在编译后的css中
  2. 带参数的混合(不是函数是mixin)
.params(@w, @h){
	width: @w;
	height: @h;	
}
.inner1{
	.params(200px, 200px);
}
  1. 带参数并且有默认值的混合,当实参与形参数量不符可以用命名参数的方式
.params(@w:200px, @h:200px){
	width: @w;
	height: @h;	
}
.inner1{
	.params(@h:100px);
}
  1. 匹配模式
    用css的边框画上三角
.triangle{
	width: 0;
	height: 0;
	border-width: 40px;
	border-style: solid;
	border-color: transparent transparent red transparent;
	// 解决IE6bug的神奇代码,开启haslayout
	overflow: hidden;
}

使用less的匹配模式

// 如果第一个参数为@_,则调用同名混合时会一起调用
.triangle(@_){
	width: 0;
	height: 0;
	border-style: solid;
}
.triangle(T, @w, @c){
	border-width: @w;
	border-color: transparent transparent @c transparent;
}
.triangle(B, @w, @c){
	border-width: @w;
	border-color: @c transparent transparent transparent;
}
.wrap{
	.triangle(T, 40px, red)
}
  1. arguments变量(实参列表)
.border(@1,@2,@3){
	border: @arguments;
}
.wrap{
	.border(1px solid black);
}
less的继承
.border(){
	border: 1px solid black;
}
#wrap{
	.inner:extend(.border){
		// &:extend(.border);
		&:nth-children(1){
			width: 250px;
			height: 250px;
		}
	}
}

上面代码编译成css后变成

.border,
#wrap .inner,
#wrap .inner:nth-children(1){
	border: 1px solid black;
}
#wrap .inner:nth-children(1){
	width: 250px;
	height: 250px;
}

如果less写成 .inner:extend(border){…},则inner及其子元素都会继承.border的样式规则
如果less写成.inner里面有&:extend(.border),则inner会继承border的样式规则

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值