LESS详解之编译LESS
掌握LESS,必须先掌握LESS的编译。因为LESS是CSS预处理语言的一种,是一种动态语言。LESS可以运行在各种语言和环境中,包括浏览器端、服务器端等。就因为是一种CSS预处理语言,所以需要编译。下面为大家介绍一下编译的方法。
浏览器端编译
LESS可以在浏览器端不用编译直接使用。在浏览器端使用LESS的时候,需要引入一个JS文件,这个JS文件能够把LESS文件在浏览器端编译成CSS文件,然后在呈现到页面上。
使用方法
1、下载less-1.4.2.min.js文件;
下载地址:http://www.leemagnum.com/js/less-1.4.2.min.js
2、页面引入后缀名为“.less”的文件
<link rel="stylesheet/less" type="text/css" href="styles.less" />
3、页面引入下载过的less-1.4.2.min.js的文件
<script src="less.js" type="text/javascript"></script>
特别注意
A、LESS文件要在LESS脚本之前引用
B、必须在http(s)协议下使用
C、.less文件不可以跨域使用(可以通过在服务端设置CORS来解决)
高级设置
引入less.js之前通过创建一个全局less对象的方式来指定参数
<script type="text/javascript">
less = {
env: "development", // 或者"production"
async: false, // 异步加载导入的文件
fileAsync: false, // 使用文件协议访问页面时异步加载导入的文件
poll: 1000, // 在监视模式下,每两次请求之间的时间间隔(ms)
functions: {}, // user functions, keyed by name
dumpLineNumbers: "comments", // 或者"mediaQuery",或者"all"
relativeUrls: false,// 是否调整相对路径
// 如果为false,则url已经是相对入口less文件的
// entry less file
rootpath: ":/a.com/"// 添加到每个url开始处的路径
};
</script>
<script src="less.js" type="text/javascript"></script>
监视模式
监视模式是一种在客户端(浏览器)使用时的特性,它会在样式文件有更新时自动刷新页面。
在URL中加入#!watch并刷新页面即可开启监视模式。你也可以通过在console中运行less.watch()来开启监视模式。
修改变量
使用modifyVars可以在运行时修改LESS变量。当用新的变量值调用了这个函数时,LESS文件将会被重新编译,但不会被重新加载。一个基本的用法示例:
less.modifyVars({
'@buttonFace': 'red',
'@buttonText': '#fff'
});
调试LESS
我们在生成的CSS中带上一些额外的信息,以便一些调试工具可以定位到LESS文件中的行数。可以通过dumpLineNumbers选项或者在url中添加!dumpLineNumbers:mediaQuery来开启这个功能。你可以选择“注释”方式,使用FireLESS来调,或者选择“mediaQuery”方式,使用FireBug/Chrome开发者工具(被识别为SCSS media query调试格式)来调试。
使用koala本地编译
Koala 是一款由国人开发的开源预处理语言图形编译工具,目前已支持 Less、Sass、Compass 与 CoffeeScript。目前支持以下系统:Windows,Mac, 10.7+,Linux: 32bit / 64bit,Ubuntu: 32bit / 64bit;下载可以去百度搜索“koala下载”进行下载。下面就针对编译LESS进行介绍。
使用方法
1、安装完成后打开 Koala,把文件夹拖入界面或者是在左侧加号处选择文件夹,此时在界面左边有文件夹路径产生。
2、同时有 less 文件将显示在界面中间,右键文件选择输出 CSS 文件的路径。
3、左键点击 less 文件在右边则有功能选项栏弹出,下面将介绍功能。
自动编译(实时编译)
当开启自动编译时,使用编辑器按下 Ctrl+S 保存时,CSS 文档会自动更新。如果没有打开这个功能,那么需要使用者在自行点击"执行编译"才更新 CSS 文档。
编译选项
行注释(line comments):这个功能会在 css 文件里对应的 less 编译出来的 css 代码上方提供一个注释。注释的内容分别说明来自 less 的第几行开始,同时标明是来自那个 less 文件。小例子如下
LESS代码
@color: #4D926F; .meng {
color: @color;
}
编译后CSS代码
/* line 3, a.less */
.meng {
color: #4d926f;
}
调试信息(debug info):这个调试功能是在保存时自动检测有无错误,注意实时编译关闭时不会开启,需要在你执行时才弹出错误。所以,建议开启实时编译。目前调试功能仅能检测出一些影响编译的错误:例如没有带{}、没带分号。这些错误,而有没有使用选择器或者样式输入错误则不会提示。小例子如下
LESS代码
@color: #4D926F; .meng {
color: @color;
}
编译后CSS代码
@media -sass-debug-info{filename{font-family:file\:\/\/E\:\/李梦龙-文档\/LESS\/LESS详解之koala编译LESS\/less\/b\.less}line{font-family:\000033}}
.meng {
color: #4d926f;
}
严格的数学(strict Math)和严格的单位(strict Units)是Koala 2。0新加的两个,目前还没有研究有啥区别编译出来都是没有注释的。小例子如下
LESS代码
@width : 2.233323232em; .meng {
width:@width;
}
编译后CSS代码
.meng {
width: 2.233323232em;
}
输出方式(代码压缩)
正常(normal):顾名思义,就是不压缩。
LESS代码
@width : 2.233323232em; .meng {
width:@width;
.leng {
width:@width;
}
}
编译后CSS代码
.meng {
width: 2.233323232em;
}
.meng .leng {
width: 2.233323232em;
}
压缩(compress):顾名思义,就是压缩。
LESS代码
@width : 2.233323232em; .meng {
width:@width;
.leng {
width:@width;
}
}
编译后CSS代码
.meng{width:2.233323232em}.meng .leng{width:2.233323232em}
YUI压缩(YUIcompress):使用 YUI 的压缩打包工具进行压缩。
LESS代码
@width : 2.233323232em; .meng {
width:@width;
.leng {
width:@width;
}
}
编译后CSS代码
.meng{width:2.233323232em}.meng .leng{width:2.233323232em}
LESS详解之编译LESS就为大家介绍到这里了。了解了LESS是怎么编译的,才能更好的了解LESS的语法知识。有了LESS编译法宝,为我们了解LESS做好了坚实的准备。
LESS详解之编译LESS的更多相关文章
- SASS详解之编译输出的样式
SASS是一种CSS预处理语言,没有装环境的话是不能被解析的.但是有了koala编译工具之后,解析SASS不需要环境也毫无压力了.SASS的输出格式有四种:嵌套.扩大.紧凑和压缩.下面结合小例子为大家 ...
- 【转帖】windows命令行中java和javac、javap使用详解(java编译命令)
windows命令行中java和javac.javap使用详解(java编译命令) 更新时间:2014年03月23日 11:53:15 作者: 我要评论 http://www.jb51.ne ...
- [Linux系统] (3)应用安装方式详解(编译安装、rpm包安装、yum安装)
软件的安装方式: 编译安装 RPM包安装 yum安装 一.编译安装 1.下载一个源码安装包:tengine-2.3.0.tar.gz.这是淘宝二次开发过的nginx.将其解压. .tar.gz 2.查 ...
- 【转】Android编译系统详解(三)——编译流程详解
原文网址:http://www.cloudchou.com/android/post-276.html 本文原创作者:Cloud Chou. 欢迎转载,请注明出处和本文链接 1.概述 编译Androi ...
- windows命令行中java和javac、javap使用详解(java编译命令)
如题,首先我们在桌面,开始->运行->键入cmd 回车,进入windows命令行.进入如图所示的画面: 可知,当前默认目录为C盘Users文件夹下的Administrator文件夹.一般而 ...
- gcc与g++的编译链接的示例详解
一.编译方式的示例详解 1. 编译C代码 代码如下:main.c /*! ************************************************************** ...
- Javac编译器详解
学习<深入了解Java虚拟机>有一段时间了,大概理解了Java从源代码编译到执行出结果的过程,也能明确的知道Java是半解释性语言.在执行源代码时,先通过Javac编译器对源代码进行词法分 ...
- libCURL开源库在VS2010环境下编译安装,配置详解
libCURL开源库在VS2010环境下编译安装,配置详解 转自:http://my.oschina.net/u/1420791/blog/198247 http://blog.csdn.net/su ...
- C/C++编译和链接过程详解 (重定向表,导出符号表,未解决符号表)
详解link 有 些人写C/C++(以下假定为C++)程序,对unresolved external link或者duplicated external simbol的错误信息不知所措(因为这样的错 ...
随机推荐
- Git_撤销修改
自然,你是不会犯错的.不过现在是凌晨两点,你正在赶一份工作报告,你在readme.txt中添加了一行: $ cat readme.txt Git is a distributed version co ...
- weblogic部署异常: cvc-enumeration-valid: string value '3.0' is not a valid enumeration value for web-app-versionType in namespace http://java.sun.com/xml/ns/javaee:<null>
尝试使用weblogic部署一个Demo应用,在选择应用目录后,报出下面的异常: VALIDATION PROBLEMS WERE FOUND problem: cvc-enumeration-val ...
- MyBatis接口的简单实现原理
MyBatis接口的简单实现原理 用过MyBatis3的人可能会觉得为什么MyBatis的Mapper接口没有实现类,但是可以直接用? 那是因为MyBatis使用Java动态代理实现的接口. 这里仅仅 ...
- P2P通信原理与实现(C++)
1.简介 当今互联网到处存在着一些中间件(MIddleBoxes),如NAT和防火墙,导致两个(不在同一内网)中的客户端无法直接通信.这些问题即便是到了IPV6时代也会存在,因为即使不需要NAT,但还 ...
- 使用框架帮助Activity规范化
摘要 本文原创,转载请注明地址:http://kymjs.com/code/2015/05/10/01 写给那些在用.想用.还没有用过KJFrame的朋友. KJFrameForAndroid总共分为 ...
- .NET:CLR via C# A Brief Look at Metadata
基础知识 A managed PE file has four main parts: the PE32(+) header, the CLR header, the metadata, and th ...
- Javascript:猜猜弹出的是啥?为啥?
背景 经常需要向新入职的年轻同学解释Javascript的两个概念:单线程和作用域链,今天就再写篇博客说明一下. 单线程 队列:只有一个用来存储回调方法的队列. 消费线程:只有一个消费线程,不停的从队 ...
- iOS7以下设备获取mac地址
注意,是iOS7以下的设备,直接上源码,获取mac地址都是为了唯一标识一个设备的,但iOS7设备的mac地址为 020000000000 MacAddress.h #include <sys/s ...
- Spring3数据源的6种配置方法
在Spring3中,配置DataSource的方法有五种. 第一种:beans.xml <bean id="dataSource" class="org.apach ...
- Java Net版短网址(ShortUrl)的算法及实现 待续
算法 1)将长网址md5生成32位签名串,分为4段, 每段8个字节; 2)对这四段循环处理, 取8个字节, 将他看成16进制串与0x3fffffff(30位1)与操作, 即超过30位的忽略处理; 3) ...