less入门初体验

css有众多的预处理器,其中比较流行的三个是lesssassstylus,本文就一起来体验less编写css代码
官方文档:http://lesscss.org/
官网栗子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
@base: #f938ab;
.box-shadow(@style, @c) when (iscolor(@c)) {
-webkit-box-shadow: @style @c;
box-shadow: @style @c;
}
.box-shadow(@style, @alpha: 50%) when (isnumber(@alpha)) {
.box-shadow(@style, rgba(0, 0, 0, @alpha));
}
.box {
color: saturate(@base, 5%);
border-color: lighten(@base, 30%);
div { .box-shadow(0 0 5px, 30%) }
}

编译成css文件:

1
2
3
4
5
6
7
8
.box {
color: #fe33ac;
border-color: #fdcdea;
}
.box div {
-webkit-box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
}

编译


1、客户端(浏览器)
通过在源代码中引入less.js文件,用于实时对.less样式表文件进行编译(并不推荐)
注意:你的less样式文件一定要在引入less.js前先引入,并且需要设置rel属性值为stylesheet/less

1
2
<link rel="stylesheet/less" href="style.less">
<script src="less.js"></script>

2、NodeJs
需要在全局安装less模块,然后借助lessc命令把less文件编译成css文件

1
2
sudo npm install -g less
lessc style.less style.css

3、Koala
推荐的是国人自主开发的实时编译软件Koala,不仅支持多种css预处理器,而且也可以跨平台运行,从而帮助web开发者更高效地进行开发

变量


变量是个好东西,允许我们单独定义一系列通用的样式,然后在需要的时候去调用,了解css中如何定义变量可查看张大神的小tips:了解CSS/CSS3原生变量var

1
2
3
4
5
6
7
@color: #999;
body {
background-color: @color;
}
h2 {
color: @color;
}

编译后:

1
2
3
4
5
6
body {
background-color: #999;
}
h2 {
color: #999;
}

Mixin(混合)


将一个定义好的class A轻松的引入到另一个class B中,从而简单实现class B继承class A中的所有样式

1
2
3
4
5
6
7
8
9
10
11
.br (@radius: 5px) {
-webkit-border-radius: @radius;
-moz-border-radius: @radius;
border-radius: @radius;
}
#logo {
.br;
}
#avatar {
.br(50%);
}

编译后:

1
2
3
4
5
6
7
8
9
10
#logo {
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
}
#avatar {
-webkit-border-radius: 50%;
-moz-border-radius: 50%;
border-radius: 50%;
}

嵌套


在一个选择器中嵌套另一个选择器来实现继承,从而减少代码量

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
ul{
background-color: #666;
padding: 10px;
list-style: none;
li{
background-color: #fff;
border-radius: 5px;
margin: 10px 0;
}
a{
text-decoration:none;
&:hover{
color:red;
}
}
}

编译后:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
ul {
background-color: #666;
padding: 10px;
list-style: none;
}
ul li {
background-color: #fff;
border-radius: 5px;
margin: 10px 0;
}
ul a {
text-decoration: none;
}
ul a:hover {
color: red;
}

运算


我们可以在less中进行加减乘除运算

1
2
3
4
5
6
7
8
@bdw: 5px;
@bgc: #333;
@tc: #030405;
body{
border-width: @bdw + 10;
background-color: @bgc * 2;
color: @tc + #336699;
}

编译后:

1
2
3
4
5
body {
border-width: 15px;
background-color: #666666;
color: #366a9e;
}

函数


less提供了一系列的颜色运算函数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
@c1: #369;
@c2: #963;
.test1{
background-color:lighten(@c1,10%);
color:darken(@c1,10%);
}
.test2{
background-color:saturate(@c1,10%);
color:desaturate(@c1,10%);
}
.test2{
background-color:fadein(@c1,10%);
color:fadeout(@c1,10%);
border-color:fade(@c1,50%);
}
.test4{
background-color:spin(@c1,10);
color:spin(@c1,-10);
border-color:mix(@c1,@c2);
}

编译后:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
.test1 {
background-color: #407fbf;
color: #264c73;
}
.test2 {
background-color: #2966a3;
color: #3d668f;
}
.test2 {
background-color: #336699;
color: rgba(51, 102, 153, 0.9);
border-color: rgba(51, 102, 153, 0.5);
}
.test4 {
background-color: #335599;
color: #337799;
border-color: #666666;
}

注释


1
2
3
4
5
注意:两种注释的区别
/* Hello Less(我依然在这里) */
.comment-show { color: black }
// Hello Less(你看不到我了)
.comment-hide { color: white }

编译后:

1
2
3
4
5
6
7
/* Hello Less(我依然在这里) */
.comment-show {
color: black;
}
.comment-hide {
color: white;
}

如果您觉得我的文章对您有用,请随意打赏。

您的支持将鼓励我继续创作!

¥ 打赏支持

文章导航

目录

×
  1. 1. 编译
  2. 2. 变量
  3. 3. Mixin(混合)
  4. 4. 嵌套
  5. 5. 运算
  6. 6. 函数
  7. 7. 注释