Bootstrap 教程 之 Less 入门文档
Less 是一门 CSS 预处理语言,它扩充了 CSS 语言,增加了诸如变量、混合(mixin)、函数等功能,让 CSS 更易维护、方便制作主题、扩充。
Less 可以运行在 Node、浏览器和 Rhino 平台上。网上有很多第三方工具帮助你编译 Less 源码。
实例:
@base: #f938ab;.box-shadow(@style, @c) when (iscolor(@c)) {-webkit-box-shadow: @style @c;box-shadow: @style @c; } .box-shadow(@style, @alpha: 50%) when (isnumber(@alpha)) {.box-shadow(@style, rgba(0, 0, 0, @alpha)); } .box {color: saturate(@base, 5%);border-color: lighten(@base, 30%);div { .box-shadow(0 0 5px, 30%) } }
编译结果
.box {color: #fe33ac;border-color: #fdcdea; } .box div {-webkit-box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);box-shadow: 0 0 5px rgba(0, 0, 0, 0.3); }
使用 Less
Less 可以通过 npm 在命令行上运行;在浏览器上作为脚本文件下载;或者集成在广大的第三方工具内。请参考 用法 。
安装
在服务器端最容易的安装方式就是通过 npm (node.js 的包管理器),方法如下:
$ npm install -g less
命令行用法:
安装 Less 后,就可以在命令行上调用 Less 编译器了,如下:
$ lessc styles.less
这将输出编译之后的 CSS 代码到 stdout,你可以将输出重定向到一个文件:
$ lessc styles.less > styles.css
若要输出压缩过的 CSS,只需添加 -x 选项。如果希望获得更好的压缩效果,还可以通过 --clean-css 选项启用 Clean CSS 进行压缩。
执行 lessc 且不带任何参数,就会在命令行上输出所有可用选项的列表。
代码中使用
可以像下面这样在代码中调用 Less 编译器(Node 平台)。
var less = require('less');less.render('.class { width: (1 + 1) }', function (e, css) {console.log(css); });
输出结果为:
.class {width: 2; }
你还可以手动调用分析器(paser)和编译器:
var parser = new(less.Parser);parser.parse('.class { width: (1 + 1) }', function (err, tree) {if (err) {return console.error(err)}console.log(tree.toCSS()); });
配置
可以给编译器传递多个参数:
var parser = new(less.Parser)({paths: ['.', './lib'], // Specify search paths for @import directivesfilename: 'style.less' // Specify a filename, for better error messages });parser.parse('.class { width: (1 + 1) }', function (e, tree) {tree.toCSS({// Minify CSS outputcompress: true}); });
第三方工具
Rhino 命令行
每个 less.js 发布版本同样包含了 rhino-compatible 版本。
命令行 rhino 版本需要包含以下两个文件:
less-rhino-.js - 编译执行,
lessc-rhino-.js - 命令行支持
命令行执行编译:
java -jar js.jar -f less-rhino-<version>.js lessc-rhino-<version>.js styles.less styles.css
以上将编译 styles.less 文件并保存为 styles.css 文件。 输出文件的参数是可选的,如果没有指定该参数,less将默认输出到标准输出中(stdout)。
客户端用法
在浏览器上跑 less.js 非常方便开发,但是不推荐用于生产环境。
在客户端使用 Less.js 是最容易的方式,并且在开发阶段很方便,但是,在生产环境中,性能和可靠性非常重要, 我们建议最好使用 node.js 或其它第三方工具进行预编译。
那就开始吧,在页面中加入 .less 样式表的链接,并将 rel 属性设置为 "stylesheet/less":
<link rel="stylesheet/less" type="text/css" href="styles.less" />
接下来,下载 less.js 并通过 <script></script> 标签将其引入,放置于页面的<head> 元素内:
<script src="less.js" type="text/javascript"></script>
提示
务必确保在 less.js 之前加载你的样式表。
如果加载多个 .less 样式表文件,每个文件都会被单独编译。因此,一个文件中所定义的任何变量、mixin 或命名空间都无法在其它文件中访问 。
浏览器选项
在 <script src="less.js"></script> 之前 定义全局的 less 对象就可以为 Less.js 设置参数:
<!-- set options before less.js script --> <script>less = {env: "development",async: false,fileAsync: false,poll: 1000,functions: {},dumpLineNumbers: "comments",relativeUrls: false,rootpath: ":/a.com/"}; </script> <script src="less.js"></script>
转载于:https://www.cnblogs.com/liyujun1988/p/5005057.html
Bootstrap 教程 之 Less 入门文档相关推荐
- 一篇实验结果统计检验入门文档
一篇统计基础文档 写在前面 以前看到保哥发教程发写的文档就觉得很没有必要,感觉高端的统计学知识.争论离我们的需求很远,而基础的统计学应用早就看腻了. 直到最近王行同学拿到实验数据想做统计却根本不知道统 ...
- GeoPandas官方快速入门文档(中文翻译版)
GeoPandas官方快速入门文档(中文翻译版) 原文链接>>Introduction to GeoPandas 点这里可以一键跑通>>GeoPandas 简介 GeoPand ...
- UniRx官方入门文档
UniRx 官方文档翻译 UniRx官方入门文档 UniRx入门系列一 UniRx入门系列二 UniRx入门系列三 UniRx入门系列四 UniRx入门系列五 UniRx 基于Unity的响应式编程框 ...
- iOS Sprite Kit教程之使用帮助文档以及调试程序
iOS Sprite Kit教程之使用帮助文档以及调试程序 IOS中使用帮助文档 在编写代码的时候,可能会遇到很多的方法.如果开发者对这些方法的功能,以及参数不是很了解,就可以使用帮助文档.那么帮助文 ...
- 一份其实很短的 LaTeX 入门文档
一份其实很短的 LaTeX 入门文档 优雅的 LaTeX 有很多 Geeks 或者 LaTeX's Fanatical Fans 过分地强调了 LaTeX 的一些并非重点的特性,以至于很多初学者会觉得 ...
- Entity Framework Core 中文入门文档
点击链接查看文档: Entity Framework Core 中文入门文档 转载于:https://www.cnblogs.com/ideck/p/efcore.html
- CAN总线入门、LIN总线入门文档-蓝凑云下载。 LDFEditor下载 ISO-14229、15765、11898下载与阅读
这两个入门文档: 中文版.讲解得全面又详细,初学者值得一看. 一.CAN总线入门-瑞萨版 1)https://wwe.lanzoui.com/igt4hit08je2)链接:https://pan.b ...
- Android入门文档
该文章为网络材料整理,部分内容经过重新编写. 一. 名词介绍 JDK:Java Development Kit Java 语言的软件开发工具包 JRE:Java Runtime Environment ...
- CloudEvents 入门文档
CloudEvents 入门文档 - 1.0.3 版本 文档来自:GitHub CloudEvents 摘要 这份非技术规范文档用来为你提供关于 CloudEvents 规范的总体概览.它补充了 Cl ...
- matlab入门文档
博主太赞了,把文档搬运好了:https://blog.csdn.net/in_nocence/article/details/78358614 matlab自带的入门文档,我看了半天的英文,脑阔疼 但 ...
最新文章
- 编程语言开发编程语言_D编程语言是开发的绝佳选择的5个理由
- 第二章 Java多线程入门类和接口
- linux常见功能代码,几种功能类似Linux命令汇总(示例代码)
- 文本数据标注工具doccano【介绍最详细的一遍文章】
- Numpy and Theano broadcasting
- 帆软查询前后鼠标进入到某个位置隐藏或显示参数面板
- flex弹性布局学习总结
- 医疗中的ai_医疗保健中自主AI的障碍
- 《高质量C/C++编程》读书笔记
- windows消息钩子
- 干货——MRD(市场需求文档)模板
- 一个人摘了一些桃子,第一天卖掉了一半,又吃了一个,第二天卖掉了一半,又吃了一个,以后天天都是如此处理,到第n天发现桃子只剩下一个桃子,n是参数,返回值是一共摘的桃子数。 求两个数的最大公约数
- Android App 耗电量分析-1
- 【论文阅读笔记】Multi-Task Feature Learning for Knowledge Graph Enhanced
- lcb2板服务器状态说明,西子奥的斯服务器LCB2RCB2服务器使用[技术专攻]
- 番茄工作法基础操作手册
- 问题记录:键盘win键无法使用,组合键无反应,win+L不能锁屏
- betapubgmobile服务器维护,pubg mobile beta测试版
- 限制输入框 输入文本类型(纯数字/数字/中文/英文)
- 如何提取抖音短视频中的音乐
热门文章
- Java从入门到精通 第19章 异常的捕获和处理
- 【鲲鹏HCIA考试】随堂习题卷三
- setspan字体加粗_Android 图文混排富文本编辑器实现详解
- 采用SVM和神经网络的车牌识别(流程图及详细解释)
- Linux 错误: $'\r': command not found错误解决
- 什么服务器有信号枪,绝地求生刺激战场8个必刷信号枪的时段地点
- 构造方法之间如何调用?
- python列表操作符_Python中list()列表操作符的案例分享
- kubernetes视频教程笔记 (8)-资源类型
- centos 6.5 安装mysql rpm_centos6.5 rpm 安装mysql5.6