less的优缺点及总结

首先来看看官方定义:

Less 是一门 CSS 预处理语言,它扩展了 CSS 语言,增加了变量、Mixin、函数等特性。Less 可以运行在 Node 或浏览器端。

less的优点:

  1. 可以设置变量。在比较大的工程里面,想要找到某个特定的样式并修改参数无疑是非常困难的,而有了变量设置,可以把所有的样式的值都用变量表示,这样修改某个样式就只需要找到对应的变量就行了。
    比如bootstrp源码包里就有个variables.less文件,专门用来放变量,当然,比较小的工程没必要费那个劲。

  2. 可以写混型(mixin)。有点像是预定义的类,有些写法很复杂、字很多的样式,可以先把他写成类,然后在后面直接引用就行了。
    比如:

.color-gradient(@start-color, @end-color){
	background: linear-gradient(@start-color, @end-color);
	background: -moz-linear-gradient(@start-color, @end-color);
	background: -o-linear-gradient(@start-color, @end-color);
	background: -webkit-linear-gradient(@start-color, @end-color);
	filter: progid:DXImageTransform.Microsoft.gradient(GradientType = 0, startColorstr = @start-color, endColorstr = @end-color);
	//GradientType = 0----vertical; GradientType = 1----horizontal.
}

以后每次遇到渐变色,引用.color-gradient(@start-color, @end-color)就可以了。

  1. 可以用嵌套的方式写css。其实这一点才是最关键最好用的,本来写css的选择器很是头疼,有些标签要反复写,效率低且易出错,现在用less写,只需要按照html的DOM树方式写一遍,然后在里面加样式就行了。
    比如:
.nav{
	.container{
		ul{
			li{
				float: left;
				margin-right: 5px;
				a{
					font-size: 1.8em;
					padding: 10px 20px;
					display: block;
					color: #3f3f3f;
					&:hover, &.actived{
						color: #fff;
						.color-gradient(#b27625, #e4ac27);
						.round-border(1rem, 1rem, 0, 0)
					}
				}
			}
		}
	}
}

否则你将要在css文件中这样写:

.nav .container ul li {
  float: left;
  margin-right: 5px;
}
.nav .container ul li a {
  font-size: 1.8em;
  padding: 10px 20px;
  display: block;
  color: #3f3f3f;
}
.nav .container ul li a:hover,
.nav .container ul li a.actived {
  color: #fff;
  background: linear-gradient(#b27625, #e4ac27);
  background: -moz-linear-gradient(#b27625, #e4ac27);
  background: -o-linear-gradient(#b27625, #e4ac27);
  background: -webkit-linear-gradient(#b27625, #e4ac27);
  filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr=#b27625, endColorstr=#e4ac27);
  border-radius: 1rem 1rem 0 0;
  -moz-border-radius: 1rem 1rem 0 0;
  -webkit-border-radius: 1rem 1rem 0 0;
}

层次不分明,逻辑混乱,字还多。
暂时只能体会到这些了。

缺点

  1. 额外的学习成本。虽然会css的人学less很快,但想要写出结构合理、逻辑分明的less还是要多练,另外想要用多个less文件编译成一个css文件(如bootstrap那样),还要另外学专门的编译工具以及配置文件写法(如grunt)。
    注: 考拉这款软件很棒,可以即时编译你的less文件,写完less保存一些就能得到css文件, 但美中不足的是,他好像不支持配置编译,只能编译单文件
  2. 用less编译出的css文件比直接写的稍微大那么一点点,不过现在网速那么快,8k和8.5k的区别是看不出来的。

你可能感兴趣的:(bootstrap)