less

2018-09-13  本文已影响0人  asimpleday

安装less

先在页面用link引入引入.less文件,并把rel属性更改为stylesheet/less,然后再引入less.js文件,可用官网的包,也可用本地的。这里位置是需要区分的,即先style.less,后less.js(而且得是服务器环境)。

<link rel="stylesheet/less" href="style.less">
<script src="//cdnjs.cloudflare.com/ajax/libs/less.js/2.7.2/less.min.js"></script>

接下来就可以使用了。

值变量

经常在css中看到一个值重复多次,比如某个颜色,整个网站都是这个主题色,比如淘宝的 #f40,这里可以将它定义成一个变量,然后在需要的地方引入变量,这样即使后期更改,只要更改这个变量的值,整个页面颜色都随之更改。

//---定义---
@default-color: #f40; //这里使用@开头定义,并且一定要以分号结尾
@font-color: #333;
@font-size-small: 12px;
@width: 200px;

//---使用---
p{
  color: @default-color;
  font-size: @font-size-small;
}

//---相当于---
p{
  color: #f40;
  font-size: 12px;
}
选择器变量

选择器变量让选择器也变成动态

//---定义---
@myselector: #wrap;
@wrap: wrap;

//---使用---
@{myselector}{   // 使用时变量名须用大括号包裹
  color:skyblue;
}
.@{wrap}{
  font-size: 26px;
}
#@{wrap}{   // 使用时变量名须用大括号包裹
  font-style: italic;
}

//---相当于---
#wrap{
  color:skyblue;
}
.wrap{
  font-size: 26px;
}
#wrap{
  font-style: italic;
}
属性变量
//---定义---
@fontSize: font-size;

//---使用---
p{
  @{fontSize}: 26px;   // 使用时变量名须用大括号包裹
}

//---相当于---
p{
  font-size: 26px;
}
url路径

项目结构改变时,修改其变量即可。

//---定义---
@images: "../img";   // 这里使用引号

//---使用---
body{
  background: url("@{images}/blue.jpg");
  background-size: cover;
}

//---相当于---
body{
  background: url("../img/blue.jpg");
  background-size: cover;
}
变量声明
//---语法---
 - 结构: @name: { 属性: 值 ;};
 - 使用:@name();

//---定义---
@background: {background: skyblue;};

//---使用---
p{
  @background();
}

//---相当于---
p{
  background: red;
}
变量运算

less的变量运算十分强大

//---定义---
@width: 300px;
@color: #222;

//---使用---
p{
  height: @width+100;
  width: @width+100;
  background: @color+#111;
}

//---相当于---
p{
  width: 400px;
  height: 400px;
  background: #333;
}
变量作用域

就近原则

//---定义---
@var: @a;
@a:skyblue;

//---使用---
p{
  background-color: @var;
  @a:red;
}

//---相当于---
p{
  background-color: red;
}

嵌套书写

&:代表的上一层选择器的名字

.box{
  width: 100px;
  background-color: skyblue;
  p{
    color: red;
  }
  &:after{
    content: "hello";
  }
}

//---相当于---
.box{
  width: 100px;
  background-color: skyblue;
}
.box p{
  color: red;
}
.box::after{
  content: "hello";
}
上一篇 下一篇

猜你喜欢

热点阅读