什么是less?
一种 动态 样式 语言.
LESS 将 CSS 赋予了动态语言的特性,如 变量, 继承, 运算, 函数. LESS 既可以在 客户端 上运行 (支持IE 6+, Webkit, Firefox),也可以借助Node.js或者Rhino在服务端运行(可以在node中进行编译)。
使用方法:
1. 在页面中可以直接引入less文件,但是必须引入less.js对其进行客户端编译。一般在练习的时候可以这样引入,在开发中就不要使用这样的方式了,因为在客户端进行编译会大量的浪费性能,增加页面响应时间
2. 利用gulp等工具对less进行编译,再项目中引入编译后的css文件
使用gulp搭建less编译环境
1. 全局安装gulp
npm install gulp --global
2. 在项目目录下进行 npm init创建package.json
3. 下载gulp依赖包和gulp-less工具以及gulp-autoprefixer、gulp-clean-css工具
npm install gulp gulp-less gulp-autoprefixer gulp-clean-css --save-dev
4. 创建gulpfile.js文件编写任务
```
var gulp = require("gulp")
var less = require("gulp-less")
//css 前缀兼容
var auto = require("gulp-autoprefixer")
gulp.task("compile:less",function(){
    gulp.src("./less/**/*.less")
        .pipe(less())
        .pipe(auto({
            grid:true,
            browsers:['last 2 versions']
        }))
        .pipe(gulp.dest('./css'))
})
gulp.task("watch",function () {
    gulp.watch("./less/**/*.less",['compile:less'])
})
gulp.task("default",['compile:less','watch'])
```
这样就可以在该项目中,。执行gulp来开启监听less文件并编译的任务
#### 使用LESS来实现栅格化布局框架
借助less预处理器与gulp自动化构建工具来实现响应式十二栅格化布局
1. 定需求
利用三个阀值将屏幕尺寸分成四种类型:
阀值: 768-992-1200
类型: xs-sm-md-lg
栅格化数量:12
```
@screen1:768px;
@screen1:992px;
@screen1:1200px;
@gridnum:12;
```
栅格化类名与样式
container,container-fluid
row
col-type-num
```
// mixins
.width(@w:100%){
    width: @w;
    margin-left:auto; 
    margin-right:auto; 
}
.padding-content(@w:15px){
    padding-left: @w;
    padding-right: @w;
}
.clearfix{   
    &:after{
        content:'';
        display:block;
        height: 0;
        overflow: hidden;
        visibility: hidden;
        clear:both;
    }
}
// 0-768 xs
//container container-fluid
.container,.container-fluid{
    .width;
    .padding-content;
    .clearfix;
    .row{
        margin-left: -15px;
        margin-right: -15px;
        .clearfix;
    }
    .ghb(xs);
}
.visible-xs{display: block;}
.visible-sm{display: none;}
.visible-md{display: none;}
.visible-lg{display: none;}
.hidden-xs{display: none;}
.hidden-sm{display: block;}
.hidden-md{display: block;}
.hidden-lg{display: block;}
// 768-992 sm
//container container-fluid
@media screen and (min-width:@screen1){
    .container{
        .width(@screen1);
    }   
    .container,.container-fluid{
        .ghb(sm); 
    }
    .visible-xs{display: none;}
    .visible-sm{display: block;}
    .visible-md{display: none;}
    .visible-lg{display: none;}
 
    .hidden-xs{display: block;}
    .hidden-sm{display: none;}
    .hidden-md{display: block;}
    .hidden-lg{display: block;}
 
}
// 992-1200 md
//container container-fluid
@media screen and (min-width:@screen2){
    .container{
        .width(@screen2);
    }    
    .container,.container-fluid{
        .ghb(md); 
    }
    .visible-xs{display: none;}
    .visible-sm{display: none;}
    .visible-md{display: block;}
    .visible-lg{display: none;}
 
    .hidden-xs{display: block;}
    .hidden-sm{display: block;}
    .hidden-md{display: none;}
    .hidden-lg{display: block;}
}
// 1200- lg
//container container-fluid
@media screen and (min-width:@screen3){
    .container{
        .width(@screen3);
    }    
    .container,.container-fluid{
        .ghb(lg); 
    }
    .visible-xs{display: none;}
    .visible-sm{display: none;}
    .visible-md{display: none;}
    .visible-lg{display: block;}
 
    .hidden-xs{display: block;}
    .hidden-sm{display: block;}
    .hidden-md{display: block;}
    .hidden-lg{display: none;}
}
// .abc (@i:1) when (@i <= 100) {  
//     .a@{i}{
//         width: unit(@i,px);// number->pixel
//     }
//     .abc(@i+1);
// }
// .abc;
.ghb (@type,@i:0) when(@i<=@gridnum) {
    .col-@{type}-@{i}{
        width:@i/@gridnum*100%;
        float:left;
    }
    .col-@{type}-offset-@{i}{
        margin-left:@i/@gridnum*100%;
    }
    .ghb(@type,@i+1);
}
```
												
												
								- 使用gulp搭建less编译环境
		什么是less? 一种 动态 样式 语言. LESS 将 CSS 赋予了动态语言的特性,如 变量, 继承, 运算, 函数. LESS 既可以在 客户端 上运行 (支持IE 6+, Webkit, Fi ... 
- Xcode搭建Python编译环境
		* {-webkit-tap-highlight-color: rgba(0,0,0,0);}html {-webkit-text-size-adjust: none;}body {font-fami ... 
- MinGW安装与环境变量配置和Sublime Text 2搭建C++编译环境
		MinGW安装与环境变量配置 从http://sourceforge.net/projects/mingw/下载MinGW,安装到D:\MinGW.工具集选择安装(之后还可以进行安装卸载):至少需要安 ... 
- 利用Docker搭建本地https环境的完整步骤
		利用Docker搭建本地https环境的完整步骤 这篇文章主要给大家介绍了关于如何利用Docker搭建本地https环境的完整步骤,文中通过示例代码将实现的步骤介绍的非常详细,对大家的学习或者工作具有 ... 
- eclipse搭建jmeter编译环境(Jmeter二次开发)
		jmeter是开源项目,方便大家对代码进行改动. 写了一个简单教程,帮助入门者进行搭建jmeter编译环境! 下载地址 文件格式为zip,解压后为docx微软office2007文档. 或者直接访问我 ... 
- 使用 Windows 10 WSL 搭建 ESP8266 编译环境并使用 VSCODE 编程(一)(2019-08-23)
		目录 使用 Windows 10 WSL 搭建 ESP8266 编译环境并使用 VSCODE 编程 安装前准备 安装 ESP8266 工具链 下载 ESP8266 SDK 编译 花絮 使用 Windo ... 
- Docker容器搭建android编译环境
		Docker容器搭建android编译环境 目录 1 部署容器 1.1 手动部署 1.1.1 配置docker 1.1.2 启动容器 1.1.3 配置环境 1.2 Dockerfile 2 镜像管理  ... 
- 如何搭建modem编译环境
		[DESCRIPTION] (1)MT6577以及之前的chip平台(如MT6575,73等) 的modem编译环境和MTK的Feature Phone的编译环境一样,即Windows+RVCT (2 ... 
- 新手搭建 x-boot 编译环境笔记
		1.需要先搭建交叉编译环境,即制作交叉编译工具链,这个过程比较复杂,所以我在这里使用别人做好的交叉编译工具链. 2018年8月27日15:03:37   2.X-boot 源码github地址:htt ... 
随机推荐
	
									- 使用openshit在ubuntu14.04下一键部署openstack(juno版本)
			一.基本介绍 本实验是在vmware workstation上虚拟机ubuntu14.04(64bit,desktop)上部署openstack(Juno版本).采用的工具是openshit.open ... 
- ssh架构之hibernate(四)二级缓存
			二级缓存使用步骤: 1.拷贝jar包 2.配置Hibernate.cfg.xml文件 a.#开启二级缓存 hibernate.cache.use_second_level_cache=true b.# ... 
- java基本数据间转换
			string=====>int int x = Integer.parseInt(“1111”); string=====>char char x = request.getParamet ... 
- CSS实现禁止文字选中
			E10平台预览第四版中包含了对 CSS3 新属性 -ms-user-select 的支持,Web 开发人员可以利用这一新属性轻松精确的控制用户可以在网站上选择哪些文本. user-select:non ... 
- putty颜色调整
			右键window窗口--Changing Setting--window--Colours: * Default Foreground: 255/255/255 * Default Backgroun ... 
- IMPDP  NETWORK_LINK参数
			在<[IMPDP]同一数据库实例不同用户间数据迁移复制—— NETWORK_LINK参数>(http://space.itpub.net/519536/viewspace-631571)文 ... 
- PyCon大会Python主题演讲摘要
			PyCon 是全国际最大的以 Python 编程言语 为主题的技能大会.大会由 Python 社区组织,每年举行一次.在大会上,来自国际各地的 Python 用户与中心开发者齐聚一堂,共同同享 Pyt ... 
- EM算法之GMM聚类
			以下为GMM聚类程序 import pandas as pd import matplotlib.pyplot as plt import numpy as np data=pd.read_csv(' ... 
- verilog之inout
			1.inout 类型的data信号 写操作有效时(rd_wr_l=0):data端口输入信号,此时data为高阻态,允许对其进行赋值. 读操作有效时(rd_wr_l=1):data端口输出信号,此时d ... 
- TOJ3448: 小学生的作业
			Python字符串的插入操作 传送门:http://acm.tzc.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=3448 ...