> 一款比较流行的预处理CSS,支持变量、混合、函数、嵌套、循环等特点
> [官网](http://lesscss.org/)
> [中文网](http://lesscss.cn/)
> http://www.w3cplus.com/css/less
一.概要
(1)为什么要有预处理CSS
CSS基本上是设计师的工具,不是程序员的工具。在程序员的眼里,CSS是很头痛的事情,它并不像其它程序语言,比如说PHP、Javascript等等,有自己的变量、常量、条件语句以及一些编程语法,只是一行行单纯的属性描述,写起来相当的费事,而且代码难易组织和维护。
很自然的,有人就开始在想,能不能给CSS像其他程序语言一样,加入一些编程元素,让CSS能像其他程序语言一样可以做一些预定的处理。这样一来,就有了“CSS预处器(CSS Preprocessor)”。
(2)什么是预处理CSS
a.CSS语言的超集,比CSS更丰满
a.CSS预处理器定义了一种新的语言,其基本思想是,用一种专门的编程语言,为CSS增加了一些编程的特性,将CSS作为目标生成文件,然后开发者就只要使用这种语言进行编码工作。通俗的说,CSS预处理器用一种专门的编程语言,进行Web页面样式设计,然后再编译成正常的CSS文件,以供项目使用。CSS预处理器为CSS增加一些编程的特性,无需考虑浏览器的兼容性问题,例如你可以在CSS中使用变量、简单的逻辑程序、函数等等在编程语言中的一些基本特性,可以让你的CSS更加简洁、适应性更强、可读性更佳,更易于代码的维护等诸多好处。
c.CSS预处理器技术已经非常的成熟,而且也涌现出了很多种不同的CSS预处理器语言,比如说:Sass(SCSS)、LESS、Stylus、Turbine、Swithch CSS、CSS Cacheer、DT CSS等。如此之多的CSS预处理器,那么“我应该选择哪种CSS预处理器?”也相应成了最近网上的一大热门话题,在Linkedin、Twitter、CSS-Trick、知呼以及各大技术论坛上,很多人为此争论不休。相比过计我们对是否应该使用CSS预处理器的话题而言,这已经是很大的进步了。
到目前为止,在众多优秀的CSS预处理器语言中就属Sass、LESS和Stylus最优秀,讨论的也多,对比的也多。本文将分别从他们产生的背景、安装、使用语法、异同等几个对比之处向你介绍这三款CSS预处理器语言。相信前端开发工程师会做出自己的选择——我要选择哪款CSS预处理器。 二. 如何使用预处理Less
1. less.js (1)> 网页运行阶段解析LESS文件
使用方式:less compiler
 (切换路径)>lessc main.less>main.css

(2)> 开发阶段编译LESS文件成为CSS

使用方式:

- 安装Node.js
- 安装less
+ 命令行执行:npm install -g less
三.less的 注释
// 模板注释,这里的注释转换成CSS后将会删除
/* CSS 注释语法 转换为CSS后任然保留 */
四.定义变量 > 将需要重复使用或经常修改的值定义为变量,需要使用的地方引用
   @变量名: 变量值;
@bgColor: #f5f5f5; body{
width: @变量名;
background-color: @bgColor;
}
body{
width: 变量值;
background-color: #f5f5f5;
}

五.嵌套

> 如果你在CSS中经常使用子代选择器,那LESS的嵌套语法使用起来非常Happy
  .container {
width: @containerWidth;
> .row {
height: 100%;
a{
color: #f40;
&:hover{
color: #f50;
}
}
}
div {
width: 100px;
.hello {
background-color: #00f;
}
}
}
  .container {
width: 1024px;
}
.container > .row {
height: 100%;
}
.container > .row a {
color: #f40;
}
.container > .row a:hover {
color: #f50;
}
.container div {
width: 100px;
}
.container div .hello {
background-color: #00f;
}

六.混合Mixin

 /* 定义一个类 */
.roundedCorners(@radius: 5px) {
-moz-border-radius: @radius;
-webkit-border-radius: @radius;
border-radius: @radius;
}
/* 定义的类应用到另个一个类中 */
#header {
.roundedCorners;
}
#footer {
.roundedCorners(10px);
}
七. Import

> 我们可以在开发阶段将样式放到多个文件中,最后通过@import 的方式合并;注意:异步请求的时候必须在http下面使用;
   // main.less
@btnColor: red;
@import url('_buttom.less'); body{
width: 1024px;
} // _buttom.less
.btn{
color: @btnColor;
}
.btn{
color: red;
}
body{
width: 1024px;
}

案例代码:

 // hello less
// 定义一个变量
// @mainColor: #e92322;
// @width: 200px;
// /* 公共样式 */
// body {
// background-color: @mainColor;
// }
// .container {
// width: 1000px;
// background-color: #ff0;
// .row {
// height: @width;
// div {
// border-left: 1px solid @mainColor;
// > a {
// color: red;
// &:hover {//相当于this;不加&有空格,不实现效果
// color: green;
// }
// }
// }
// }
// }
/* 定义一个类 */
// // 定义一个代码段,()里的内容是参数,参数中:后的内容是参数的默认值(没有传参数)
// .roundedCorners(@radius: 5px) {
// -moz-border-radius: @radius;
// -webkit-border-radius: @radius;
// border-radius: @radius;
// }
// /* 定义的类应用到另个一个类中 */
// #header {
// .roundedCorners();
// }
// #footer {
// .roundedCorners(10px);
// }
//
// @h: 100px;
// @import url('_p.less');
body {
background-color: lighten(#000, 10%);
color: darken(#fff, 10%);
}

八.函数

内置函数
 - lighten:将一个颜色变亮
+ lighten(#000, 10%); // #1a1a1a
- darken:将一个颜色变暗
+ darken(#000, 10%); // #e6e6e6

less基本知识总结的更多相关文章

  1. 你必须知道的EF知识和经验

    注意:以下内容如果没有特别申明,默认使用的EF6.0版本,code first模式. 推荐MiniProfiler插件 工欲善其事,必先利其器. 我们使用EF和在很大程度提高了开发速度,不过随之带来的 ...

  2. MySQL高级知识- MySQL的架构介绍

    [TOC] 1.MySQL 简介 概述 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司. MySQL是一种关联数据库管理系统,将数据保存在不同的表中,而 ...

  3. 学点HTTP知识

    不学无术 又一次感觉到不学无术,被人一问Http知识尽然一点也没答上来,丢人丢到家了啊.平时也看许多的技术文章,为什么到了关键时刻就答不上来呢? 确实发现一个问题,光看是没有用的,需要实践.看别人说的 ...

  4. java中的字符串相关知识整理

    字符串为什么这么重要 写了多年java的开发应该对String不陌生,但是我却越发觉得它陌生.每学一门编程语言就会与字符串这个关键词打不少交道.看来它真的很重要. 字符串就是一系列的字符组合的串,如果 ...

  5. [C#] C# 知识回顾 - 你真的懂异常(Exception)吗?

    你真的懂异常(Exception)吗? 目录 异常介绍 异常的特点 怎样使用异常 处理异常的 try-catch-finally 捕获异常的 Catch 块 释放资源的 Finally 块 一.异常介 ...

  6. [C#] C# 知识回顾 - 学会处理异常

    学会处理异常 你可以使用 try 块来对你觉得可能会出现异常的代码进行分区. 其中,与之关联的 catch 块可用于处理任何异常情况. 一个包含代码的 finally 块,无论 try 块中是否在运行 ...

  7. [C#] C# 知识回顾 - 学会使用异常

    学会使用异常 在 C# 中,程序中在运行时出现的错误,会不断在程序中进行传播,这种机制称为“异常”. 异常通常由错误的代码引发,并由能够更正错误的代码进行 catch. 异常可由 .NET 的 CLR ...

  8. [C#] C# 知识回顾 - 异常介绍

    异常介绍 我们平时在写程序时,无意中(或技术不够),而导致程序运行时出现意外(或异常),对于这个问题, C# 有专门的异常处理程序. 异常处理所涉及到的关键字有 try.catch 和 finally ...

  9. [.NET] C# 知识回顾 - Event 事件

    C# 知识回顾 - Event 事件 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/6060297.html 序 昨天,通过<C# 知识回顾 - ...

  10. [.NET] C# 知识回顾 - 事件入门

    C# 知识回顾 - 事件入门 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/6057301.html 序 之前通过<C# 知识回顾 - 委托 de ...

随机推荐

  1. html页面禁止选择复制剪切

    在body加入 onselectstart="return false" oncopy="return false;" oncut="return f ...

  2. javaWeb 批量下载图片

      批量下载网页图片 CreateTime--2017年9月26日15:40:43 Author:Marydon 所用技术:javascript.java 测试浏览器:chrome 开发工具:Ecli ...

  3. Redis学习(7)-通用命令

    keys pattern: 获取所有与pattern匹配的key,返回所有与该key匹配的keys. 通配符: *表示任意一个或多个字符串. ?表示一个字符. 例如: 查询所有的key:keys * ...

  4. java Socket Tcp 浏览器和服务器(二)

    package cn.itcast.net.p2.ie_server; import java.io.IOException;import java.io.InputStream;import jav ...

  5. hdoj 2199 Can you solve this equation? 【二分枚举】

    题意:给出一个数让你求出等于这个数的x 策略:如题. 由于整个式子是单调递增的.所以能够用二分. 要注意到精度. 代码: #include <stdio.h> #include <s ...

  6. Spring Framework Ecosystem – Introduction to Spring Projects

    来自于:http://springtutorials.com/spring-ecosystem/ Hello and Welcome to Spring Tutorials Blog! Is it f ...

  7. HDUOJ----1166敌兵布阵(线段树单点更新)

    敌兵布阵 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submis ...

  8. HDUOJ----湫湫系列故事——减肥记I

    湫湫系列故事——减肥记I Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Tota ...

  9. js访问url和cookie

    function QueryString() { var data = []; this.Read = function() { var aPairs, aTmp; var queryString = ...

  10. 解决 无法将文件" "复制到“bin\*.*”。对路径“bin\*.*”的访问被拒绝。

    关于这个问题今天碰到了, 我的解决办法很简单: 删除bin目录下的所有文件,然后重新生成,就不报错了.