掌握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的更多相关文章

  1. SASS详解之编译输出的样式

    SASS是一种CSS预处理语言,没有装环境的话是不能被解析的.但是有了koala编译工具之后,解析SASS不需要环境也毫无压力了.SASS的输出格式有四种:嵌套.扩大.紧凑和压缩.下面结合小例子为大家 ...

  2. 【转帖】windows命令行中java和javac、javap使用详解(java编译命令)

    windows命令行中java和javac.javap使用详解(java编译命令) 更新时间:2014年03月23日 11:53:15   作者:    我要评论 http://www.jb51.ne ...

  3. [Linux系统] (3)应用安装方式详解(编译安装、rpm包安装、yum安装)

    软件的安装方式: 编译安装 RPM包安装 yum安装 一.编译安装 1.下载一个源码安装包:tengine-2.3.0.tar.gz.这是淘宝二次开发过的nginx.将其解压. .tar.gz 2.查 ...

  4. 【转】Android编译系统详解(三)——编译流程详解

    原文网址:http://www.cloudchou.com/android/post-276.html 本文原创作者:Cloud Chou. 欢迎转载,请注明出处和本文链接 1.概述 编译Androi ...

  5. windows命令行中java和javac、javap使用详解(java编译命令)

    如题,首先我们在桌面,开始->运行->键入cmd 回车,进入windows命令行.进入如图所示的画面: 可知,当前默认目录为C盘Users文件夹下的Administrator文件夹.一般而 ...

  6. gcc与g++的编译链接的示例详解

    一.编译方式的示例详解 1. 编译C代码 代码如下:main.c /*!  ************************************************************** ...

  7. Javac编译器详解

    学习<深入了解Java虚拟机>有一段时间了,大概理解了Java从源代码编译到执行出结果的过程,也能明确的知道Java是半解释性语言.在执行源代码时,先通过Javac编译器对源代码进行词法分 ...

  8. libCURL开源库在VS2010环境下编译安装,配置详解

    libCURL开源库在VS2010环境下编译安装,配置详解 转自:http://my.oschina.net/u/1420791/blog/198247 http://blog.csdn.net/su ...

  9. C/C++编译和链接过程详解 (重定向表,导出符号表,未解决符号表)

    详解link  有 些人写C/C++(以下假定为C++)程序,对unresolved external link或者duplicated external simbol的错误信息不知所措(因为这样的错 ...

随机推荐

  1. An ac a day,keep wa away

    zoj 初学者题: 1001 1037 1048 1049 1051 1067 1115 1151 1201 1205 1216 1240 1241 1242 1251 1292 1331 1334 ...

  2. Codeforces Round #260 (Div. 2) B. Fedya and Maths

    B. Fedya and Maths time limit per test 1 second memory limit per test 256 megabytes input standard i ...

  3. CentOS6.X关闭防火墙

    一.关闭防火墙 1.重启后永久性生效: 开启:chkconfig iptables on 关闭:chkconfig iptables off 2.即时生效,重启后失效: 开启:service ipta ...

  4. spring---transaction(2)---源代码分析(事务的定义TransactionDefinition)

    写在前面 事务属性通过TransactionDefinition接口实现定义,主要有事务隔离级别.事务传播行为.事务超时时间.事务是否只读. public interface TransactionD ...

  5. html div 宽度随着浏览器自动适应

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  6. android手机安全:被攻陷的一个场景

     到处找WIFI,对于我们的手机控来说是相当普遍的了.假设你发现了有可用的wifi,并选择了浏览器连接,当浏览器出现一个web 页面的时候,你可能已经中招了. 相同,当你的手机使用一些免费应用的时候, ...

  7. linux驱动移植的重要数据结构

    转载:http://www.embeddedlinux.org.cn/html/jishuzixun/201304/14-2538.html 对于嵌入式 Linux 系统来说,有各种体系结构的处理器和 ...

  8. ExtJS创建选项卡

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  9. CMMI5级——原因分析及解决方案(Causal Analysis and Resolution)

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u010825142/article/details/15338085 聪明的人在出现问题的时候,除了 ...

  10. string.Format对C#字符串格式化[转]

    string.Format对C#字符串格式化 String.Format 方法的几种定义: String.Format (String, Object) 将指定的 String 中的格式项替换为指定的 ...