如何使用less?

大家好,我是IT修真院郑州分院第05期学员,一枚正直纯洁善良的web程序员。今天给大家分享一下,修真院官网css任务11,如何使用less?

1.背景介绍

什么是less

我们先提一下css

CSS(层叠样式表)是一门历史悠久的标记性语言,同 HTML 一道,被广泛应用于万维网(World Wide Web)中。HTML 主要负责文档结构的定义,CSS 负责文档表现形式或样式的定义。

作为一门标记性语言,CSS 的语法相对简单,对使用者的要求较低,但同时也带来一些问题:CSS 需要书写大量看似没有逻辑的代码,不方便维护及扩展,不利于复用,尤其对于非前端开发工程师来讲,往往会因为缺少 CSS 编写经验而很难写出组织良好且易于维护的 CSS 代码,造成这些困难的很大原因源于 CSS 是一门非程序式语言,没有变量、函数、SCOPE(作用域)等概念。

为了加入一些编程元素,让CSS能像其他程序语言一样可以做一些预定的处理,CSS预处理器应运而生。 CSS预处理器用一种专门的编程语言,进行样式设计,然后再编译成正常的CSS文件,以供项目使用。CSS预处理器为CSS增加一些编程的特性,使用变量、简单的逻辑程序、函数等在编程语言中的一些基本特性,让CSS 更加简洁、适应性更强、可读性更佳,更易于代码的维护。

使用最为普遍的三款CSS预处理器框架分别是 SASS、LESS和Stylus。

1、SASS:最早、最成熟的CSS预处理器,拥有Ruby社区的支持和compass这一最强大的CSS框架,目前受LESS影响,已经进化到了全面兼容CSS的SCSS。SASS使用.sass扩展名。

2、LESS:受SASS的影响较大,但又使用CSS的语法,更容易上手,在Ruby社区之外支持者远超过SASS,其缺点是比起SASS来,可编程功能不够,优点是简单和兼容CSS。LESS影响了SASS演变到SCSS,著名的Twitter Bootstrap就是采用LESS做底层语言的。LESS使用.less扩展名。

3、Stylus:来自Node.js社区,主要用来给Node项目进行CSS预处理,在node.js社区内有一定支持者,但在广泛意义上人气还完全不如SASS和LESS。Stylus使用.styl扩展名。Stylus功能上更为强壮,和JavaScript联系更加紧密。

LESS是受SASS启发而开发的工具,为什么要开发SASS的替代品?

原因:语法。SASS支持老的缩进式的语法{不带花括号的语法),因此程序员需要学习一种新的语法;LESS能与CSS无缝地紧密结合在一起,能够让开发者从已有CSS文件平滑地过渡到LESS,而不需要像SASS那样将CSS文件转换成SASS格式。

目前受LESS影响,已经进化到了全面兼容CSS的SCSS。Sass 和 SCSS 其实是同一种东西,我们平时都称之为 Sass,SCSS 是 Sass 3引 入新的语法,其语法完全兼容 CSS3,并且继承了 Sass 的强大功能。 不同点:

(1)文件扩展名不同,Sass 是以“.sass”后缀为扩展名,而 SCSS 是以“.scss”后缀为扩展名.

(2)语法书写方式不同,Sass 是以严格的缩进式语法规则来书写,不带大括号({})和分号(;),而 SCSS 的语法书写和我们的 CSS 语法书写方式非常类似(SCSS 和 CSS 写法无差别)。简单点说,把你现有的“.css”文件直接修改成“.scss”即可使用。


2.知识剖析

2.1如何使用LESS?

页面引入js代码文件解析

我们可以直接在客户端使用 .less(LESS 源文件),只需要从 http://lesscss.org下载 less.js 文件,然后在我们需要引入 LESS 源文件的 HTML 中加入如下代码,也可以直接引入cdn. 首先引入less代码

link rel="stylesheet/less" href="example.less"

script src="http://cdn.bootcss.com/less.js/2.7.0/less.js"

服务器端编译less

安装完node.js之后,打开Node.js command prompt,通过npm install -d less命令安装LESS包,然后新建一个demo.less文件,输入lessc demo.less > test.css之后以后即可编译CSS文件。

使用工具进行编译

监测指定的less文件的变化,如果检测到变化,则自动将less文件输出成相应的css文件。并且大多数工具都提供一定的debug功能。

例如使用koala对less文件进行编译

3.常见问题

less包含了什么

4.解决方案

Less在CSS语法的基础上进行了扩展,主要包含: 变量、嵌套、混合、操作符、函数等等.

变量(variables)

LESS 允许开发者自定义变量,变量可以在全局样式中使用,变量使得样式修改起来更加简单。我们可以从下面的代码了解变量的使用及作用:

less文件


经过编译生成的 CSS 文件如下:


从上面的代码中我们可以看出,可以将相同的值定义成变量统一管理起来。该特性适用于定义主题,我们可以将背景颜色、字体颜色、边框属性等常规样式进行统一定义,这样不同的主题只需要定义不同的变量文件就可以了。less 变量以@作为前缀,不能以数字开头, 不能包含特殊字符。

Less中的变量还具有计算功能,如:

less文件 css文件


在Less中的变量实际上就是一个“常量”,因为它们只能被定义一次。

less文件 @dawa:#29b078; @dawa:white; .siwa{ color: @dawa; }

css文件 .siwa { color: #ffffff; }

上面代码很明显说明了后的@dawa覆盖了前面的@dawa。

Mixins(混入)

如图所示less文件 css文件


从上面的代码我们可以看出: 什么是混入,这个是在bootstrap中经常看到的一个东西。混入可以将定义好的class A轻松的引 入到classB ,从而简单实现class B继承所有class A的属性。定义的时候前面要加点。

而在引用之前,这段代码都不会出现在编译文件中,也就是不会生成任何内容。这也是非常重要的一个特性。

混入(Mixin)有一个名词叫“混入参数(Parametric Mixins)”


我们的默认值是原谅绿我们可以改为自己想要的颜色比如红色或者更绿

嵌套规则(Nested Rules)

嵌套可以增强代码的层级关系,我们也可以通过嵌套来实现继承,这样很大程度减少了代码量,代码量看起来更加清晰。


有 & 时解析的是同一个元素或此元素的伪类,没有 & 解析是后代元素

函数

LESS中的函数 - 映射了JavaScript函数代码,如果你愿意的话,可以操纵属性值。这一块我还没整明白,大家知道less里有函数,可以自己找一下。


LESS 还拥有一些很有趣的特性有助于我们的开发,例如模式匹配、条件表达式、命名空间和作用域,以及 JavaScript 赋值等等。

具体参考:

LESS使用参考1

LESS使用参考2

LESS使用参考3

可以了解:

值得参考的 10 个 LESS CSS 实例

5.编码实战

6.扩展思考

less和sass选哪个用?

less和sass现状

7.参考文献

参考一:博客园sass的学习笔记

参考二:CSS 预处理语言的模块化实践

参考三:LESS CSS 框架简介

参考四:学会如何使用LESS(一)----变量和混合

参考五:初步认识 LESS

参考六:less的配置安装及语法使用

参考七:CSS——LESS

8.更多讨论

1、国内互联网前端用LESS的还是SASS的多一些?

前一段看一个微博做了一个粗略的统计,喜欢LESS的同学多于喜欢Sass的同学。

(1)LESS环境较Sass简单

(2)有同学说LESS使用较Sass简单

(3)相对而言,国内前端团队使用LESS的同学会略多于Sass

2、less的三种引入方式有什么优缺点?

页面引入js代码文件解析

优点:不必安装less编译环境,同样可以使用less文件

缺点:在页面上解析代码,效率较低,受机器、网络影响较大 ,影响了页面加载速度

服务器端预编译

优点:服务器端预编译,效率高,避免客户端解析延时。

缺点:消耗服务器资源,编译出错的话,你可能要自己写一个处理error的函数,何时编译less文件成为一个问题,每次有客户请求就编译一次less文件显然效率比较低,但是根据less文件的变化来编译又好像没有放在服务器上编译的必要。

使用工具编译

优点:实时编译,更快更方便。

缺点:要一直打开,每天要开始编写时就打开,不能忘。

3、你比较喜欢less还是sass?

你自己使用哪一种,不应该根据国内对哪一种使用的人多来做出发参考,而是哪种更适合自己的团队。


如何使用less?_腾讯视频


ppt链接

视频链接

今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~

我们下周再见!

------------------------------------------------------------------------------------------------------------------------

技能树.IT修真院

“我们相信人人都可以成为一个工程师,现在开始,找个师兄,带你入门,掌控自己学习的节奏,学习的路上不再迷茫”。

这里是技能树.IT修真院,成千上万的师兄在这里找到了自己的学习路线,学习透明化,成长可见化,师兄1对1免费指导。快来与我一起学习吧~

我的邀请链接:http://www.jnshu.com/login/1/12164783

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,835评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,598评论 1 295
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,569评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,159评论 0 213
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,533评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,710评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,923评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,674评论 0 203
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,421评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,622评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,115评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,428评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,114评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,097评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,875评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,753评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,649评论 2 271

推荐阅读更多精彩内容

  • 1.背景介绍 CSS 是一门非程序式语言,没有变量、函数、SCOPE(作用域),需要书写大量看似没有逻辑的代码,不...
    远望的云阅读 32,053评论 3 35
  • 本以为过完年,工作该告一段落!我也可以过一下期盼中的情人节,享受一下节日的甜蜜。然而,事与愿违! 白天。 我穿梭在...
    水墨青花_048阅读 762评论 0 0
  • 今天小可爱回家了,没给你发微信实在是我疏忽了,别和我一般见识了,以后你的航班号,车牌号,班次号我都给你记着,晚点一...
    傻大个的小胖子阅读 220评论 0 0
  • 2017年8月14日,这是一个我难以忘怀的日子,因为这天我来到了简书这一方世界。时至今日,走过2周有余,在这短暂的...
    冷榆阅读 521评论 23 12
  • 你有没有遇到过这样的情况,跟你面对的这个人脸庞很美丽,语言语气很温和,无论你问他什么问题,只要涉及他的责任,他会囫...
    最平凡阅读 4,901评论 0 7