less

嵌套与变量

less中

@color:pink;
@m:margin;
@selector:#wrap;//变量定义,属性,值,选择器都可定义

@{selector}   
{
	width: 200px;
	height: 200px;
	border: 3px solid blue;
	@{m}:auto;
	.inner{  //嵌套 效果相当于 #wrap .inner
	   width: 100px;
	   height: 100px;
	   background-color: @color;
	}
}

相当于css的

#wrap {
  width: 200px;
  height: 200px;
  border: 3px solid blue;
  margin: auto;
}
#wrap .inner {
  width: 100px;
  height: 100px;
  background-color: pink;
}

变量的块级作用域

@var:0;
.class{
	@var:1;
	.brass{
		@var:2;
		tree:@var;
		@var:3;
	}
	grass:@var;
}
  • 引用变量会从最近的作用域找起,且取得最近的作用域内最后此定义,因而tree的值为3。
  • 值得注意的是,.class括号中的brass括号对变量修改并不会作用域.class,故grass值为1。

编译后

.class {
  grass: 1;
}
.class .brass {
  tree: 3;
}

嵌套规则

  .inner {
    width: 100px;
    height: 100px;
    background-color: pink;
	
	&:hover{
	 background-color: yellow;
	}
  }

嵌套伪类时,应在伪类前加"&",否则会出现空格使伪类无效。
此方法可用于平级嵌套,例如div.app

定义混合

.FenBeiJing()  //去掉括号后会把它(构造函数)也编译
{
	background-color: pink;
}

#wrap{
	.FenBeiJing;
	width: 200px;
	height: 200px;
	.inner{
	  width: 100px;
	  height: 100px;
	  .FenBeiJing;
	}
} 
  • 可通过这样的写法像函数一样,定义并调用一串css代码。

  • 既然像函数就也可以带参数,参数也可以有默认值。

    .FenBeiJing(@w:pink){
    background-color: @w;
    }
    这样引用时没有传参数就会默认为粉色。

    引用传参如下

.FenBeiJing(black);

注意:当传的参数数量没有达到预设的数量,且没有传的参数又没有预设值,是会报错编译失败的。
想指定传的参数对应哪一个时:

.FenBeiJing(@w:black);

匹配模式

    .BeiJing(Fen){
      background-color: pink;
    }
    .BeiJing(Hei){
      background-color:black;
    }
   #wrap{
	.BeiJing(Fen);
	.inner{
	  .BeiJing(Hei);
	}
}
  • 函数没有用@开头也没有值的参数会被用于在相同名字的函数中选择匹配,引用时根据这种值选择要当前函数名下的哪一个混合。

编译后如下

  #wrap {
     background-color: pink;
       }
         #wrap .inner {
  background-color: black;
}

注意相同函数名下没有匹配值的函数会被直接一起调用

arguments

这样用

 .border(@1,@2,@3){
	border: @arguments;
}

.inner{
	  .border(1px,s0lod,black)//数量要对上
	}

引用

@import “less文件地址”;

less计算

width:(100+100px);//一方带单位即可

less继承

extent用法见两篇文章
简单的
难得

避免编译

想要一段代码不被less编译,用~" "套住内容即可

height: ~"(100+100px)";

个人测试只能套值,而不能用于属性

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章