使用LESS构建你的前端CSS(by vczero)

一、为什么要用LESS

很多时候我们觉得CSS只是样式框定,前端的重头戏是JavaScript;其实,很多能用HTML + CSS实现的效果的效率远比使用JS来的划算。LESS是什么?我们为什么要使用LESS呢?Less 是一个Css 预编译器,意思指的是它可以扩展Css语言,添加功能如允许变量(variables),混合(mixins),函数(functions) 和许多其他的技术,让你的Css更具维护性,主题性,扩展性。你是否曾经遇到过这种场景:

定义了一个DIV的宽度是980px,到了另一个页面也有一个DIV是980px;其实这两个DIV的宽度需要保持一致。

       #div1{width:980px; height:300px; font-size:16px;}

       #div2{width:980px; color:red; height:40px;}

也许你说,可以使用一个类来代表宽度嘛,但是时间一长,你不小心改动了width这个类,造成了整个页面其他的地方都变了,你是否还要去检查你的HTML呢?这种DIV的语义化也没有得到充分的体现,没有将width直接写进#div1和#div来的直观。我们心微微动一下,要是有变量就好了。对!这就是LESS最基本的初衷。

二、使用Node.js构建你的LESS编译环境

可以查看官网LESS好多使用方式,可以在浏览器直接使用LESS,但是,不建议这样使用,因为浏览器需要加载LESS的解析JS文件去解析LESS文件,这样在一定程度上消耗了浏览器的资源,降低了web程序的性能。所以推荐使用Node.js编译LESS脚本。Node.js的安装和说明这里不说了。

安装LESS框架,这里选择npm工具全局安装。

$ npm install -g less

安装完毕后,你就会发现如此迅速,OK了。cmd中运行lessc命令检测是否成功,如果成功就可以看到以下options。

三、编译第一个LESS脚本

LESS文件的后缀名可以是.css,也可以是.less。建议使用.css,因为使用一些编辑器可以高亮一些CSS属性。比如你写了一个less脚本“main_0.css”:

 1 @header_height:3em;
 2 @float_left:left;
 3 @float_right:right;
 4
 5 body{
 6     margin: 0;
 7 }
 8
 9 .header{
10     height: @header_height;
11     width: 100%;
12     background-color: #F0F0F0;
13 }
14
15 #header_back{
16     height:@header_height;
17     width:30%;
18     float:@float_left;
19     border: 1px solid red;
20 }
21
22 #header_title{
23     height:@header_height;
24     float:@float_right;
25     width:69%;
26     border: 1px solid red;
27 }
28
29 #header_title{
30     text-align: center;
31 }

其实,你看到文件已经很明白了,@header_height就是一个变量...代码很简单,OK。这段代码加载到HTML中是跑不起来的,因为我们没有将它编译为可用的CSS,即浏览器可以解析的CSS文件。同样,使用LESS工具。打开cmd:

$ lessc main_0.css > main.css

很明显,这就是将main_0.css这个less脚本编译成浏览器可用的main.css文件,编译后的结果如下:

 1 body {
 2   margin: 0;
 3 }
 4 .header {
 5   height: 3em;
 6   width: 100%;
 7   background-color: #F0F0F0;
 8 }
 9 #header_back {
10   height: 3em;
11   width: 30%;
12   float: left;
13   border: 1px solid red;
14 }
15 #header_title {
16   height: 3em;
17   float: right;
18   width: 69%;
19   border: 1px solid red;
20 }
21 #header_title {
22   text-align: center;
23 }

四、熟悉LESS语法规则,开始你的CSS“编程”之旅

特意加了“编程”二字,让CSS运行在你的逻辑中吧。具体的LESS基本语法如下:

(1)@color: #4D926F; 定义一个变量@color,变量名就是@color,像PHP的定义吧。

(2)变量作用域的就近原则。例如:

 1  @width : 20px;
 2  #homeDiv {
 3    @width : 30px;
 4    #centerDiv{
 5        width : @width;// 此处应该取最近定义的变量 width 的值 30px
 6               }
 7  }
 8  #leftDiv {
 9      width : @width; // 此处应该取最上面定义的变量 width 的值 20px
10
11  }

编译后的CSS是:

1 #homeDiv #centerDiv {
2   width: 30px;
3  }
4  #leftDiv {
5   width: 20px;
6  }

(3)可嵌入class块,例如下面的.borderRadius就是一个样式块。其中.borderRadius(@radius)允许传入默认值,改为->.borderRadius(@radius:25px)

 1 // 定义一个样式选择器
 2  .borderRadius(@radius){
 3  -moz-border-radius: @radius;
 4  -webkit-border-radius: @radius;
 5  border-radius: @radius;
 6  }
 7  // 使用已定义的样式选择器
 8  #header {
 9  .borderRadius(10px); // 把 10px 作为参数传递给样式选择器
10  }
11  .btn {
12  .borderRadius(3px);// // 把 3px 作为参数传递给样式选择器
13
14  }

编译转化后的CSS代码如下:

 #header {
 -moz-border-radius: 10px;
 -webkit-border-radius: 10px;
 border-radius: 10px;
 }
 .btn {
 -moz-border-radius: 3px;
 -webkit-border-radius: 3px;
 border-radius: 3px;
 }

(4)具有命名空间的特性。

(5)理解CSS的嵌套规则。

(6)支持基本的运算。

(7)LESS的内置函数。

——前端工程如此浩大,孜孜不倦,孜孜不倦

参考:

http://lesscss.org/

https://github.com/less/less.js

http://www.lesscss.net/

http://www.ibm.com/developerworks/cn/web/1207_zhaoch_lesscss/

使用LESS构建你的前端CSS(by vczero),布布扣,bubuko.com

时间: 2024-08-05 23:33:27

使用LESS构建你的前端CSS(by vczero)的相关文章

maven 关于构建版本号,以及在构建的时候压缩css,js并为这些文件追加版本号

最近负责公司一个项目框架的搭建,由于我们这边是后端团队,没有专业的前端工程师支持我们,我就在这个搭建过程中遇到了一些前端问题,给大家分享一下. 主要分享点: 构建项目时自动在css,js文件名中加入版本号     解决新上线版本时,浏览器可以更新缓存 构建项目自动压缩css,js资源文件     加快响应速度 解决第一个问题,是在构建的时候必须生成一个构建版本号,比如构建时刻的timestamp,正好在网上看到这样的插件,配置信息如下 <plugin> <groupId>org.c

web前端入门到实战:十个最流行的前端 CSS 库

前端 CSS 库,可以帮助用户分担样式设计,从而显著提高原型制作速度:用户则可以凭借前端框架,更加轻松地构建起直观的可用应用程序.目前市场上存在大量前端框架可供选择,本篇文章的主要内容就是关于那些目前最为流行且常用的框架. 为什么要使用 CSS 库,而不选择自定义 CSS?简而言之,时间是一种宝贵的资源,我们不该把它浪费在样式的构建身上.从零开始构建 CSS 是否性能好.效果佳?答案当然是肯定的.但除非您是位身经百战的 CSS 视觉创意人士,否则把这项工作交给专家才是最好的选择. 与此同时,框架

【项目总结】扯一扯电商网站前端css的整体架构设计(1)

最近半忙不忙的写了一个外包网站,网站主要功能是艺术品竞拍和艺术衍生品的销售.工程已经完成了80%左右,现在前后端代码量已经50W行左右,我主要负责的是前端设计和前端布局.下面就先放一个网站的设计图吧,因为涉及到甲方的"商业机密",所以打一下马赛克: 这篇文章主要算是我对于这个项目的总结或者说是对于这阶段自己看的一些前端书或者经验的一个总结吧,所以设计图就不贴那么多了.整个项目的设计图由最开始的ui定了个首页稿基调,剩下的界面大部分都是我在首页稿基础上做出来的,以后有机会再唠.PS:不过

960网格布局框架(前端css框架)的使用方法

960框架总宽960px CSS框架已经出现很长时间了,关于这些框架的用处也被我们讨论了很多遍了.有人说,CSS框架不够先进,还有人说这些框架大大的节省了他们的开发时间.在此,我们将不再讨论这个问题. 前段时间,我了解到了CSS框架.经过对Malo.BluePrint和960做了实验对比后,我得出一个结论:我最喜欢960CSS框架. 本教程将解释这个框架的基本原理,这样你就可以用960来快速进入开发. 基本原理 你必须知道一些基本原理来“学习这个框架是如何工作的”.你可以通过实验(或者是用fir

前端CSS规范整理

一.文件规范 1.文件均归档至约定的目录中. 具体要求通过豆瓣的CSS规范进行讲解: 所有的CSS分为两大类:通用类和业务类.通用的CSS文件,放在如下目录中: 基本样式库 /css/core 通用UI元素样式库 /css/lib JS组件相关样式库 /css/ui 业务类的CSS是指和具体产品相关的文件,放在如下目录中: 读书 /css/book/ 电影 /css/movie/ 音乐 /css/music/ 社区 /css/sns/ 小站 /css/site/ 同城 /css/location

前端CSS编程之道-LESS

由于前端css编写繁琐,最近开始学习LESS,用LESS编写文件.less文件可以直接编译成我们要的.css文件 学习Less 我下面是我练习时的截图,希望小伙伴也能动手自己写一下,而不是复制粘贴模式学习.动手敲能体会不一样 1.下载国内的koala的预处理器,可以自动把less编译成css 2.使用sublime安装插件,推荐这种方式,因为我们是前端攻城狮 变量 用@来声明变量 输出 发现变量还可以引入变量的.可以看@ref的特别使用. 如果对同一个变量定义的话,在当前作用域中最后一次定义的将

[转]前端CSS规范整理

一.文件规范 1.文件均归档至约定的目录中. 具体要求通过豆瓣的CSS规范进行讲解: 所有的CSS分为两大类:通用类和业务类.通用的CSS文件,放在如下目录中: 基本样式库 /css/core 通用UI元素样式库 /css/lib JS组件相关样式库 /css/ui 业务类的CSS是指和具体产品相关的文件,放在如下目录中: 读书 /css/book/ 电影 /css/movie/ 音乐 /css/music/ 社区 /css/sns/ 小站 /css/site/ 同城 /css/location

扯一扯前端css的整体架构设计:(2)base基础类的那些事儿

周一下午在实验室写了第一篇博文,有几个人捧场,那咱就得接着下去啊.然后我觉得现在写的内容更多的偏向于谈一下我对于前端css架构的理解和前端经验的一个小总结,所以就把标题里原来的[项目总结]给删掉了.但是这不是说以后文章就不提我手里这个半死不活的类电商网站了,还得接着提,要不然拿什么自黑呢~~ [回顾一下上一篇] 上一篇里我主要针对于我最近写的一个项目的前端结构,开始介绍了一些前端结构的一些知识或者说是经验吧. 为什么前端css也有架构,为什么要考虑css的架构,怎么实现css的简单架构,这些问题

前端css的引入方式

!!!前端css的引入方式# 1.css介绍# 现在互联网分为三层:# html:超文本标记语言,从语义的角度描述页面结构.# CSS:层叠样式表,从审美的角度负责页面样式# JavaScript:从交互的角度描述页面行为## css: cascading style sheet, 层叠样式表,CSS作用是给HTML添加各种样式,简单一句话# CSs就是将网页内容和显示样式进行分离,提高显示功能## CSS优点# 使数据和显示分开,# 降低网络流量# 使整个网站视觉效果一致# 是开发效率提高(一