十分钟入门CSS预处理器——Less
来源:互联网 发布:淘宝网12v 电池组 编辑:程序博客网 时间:2024/05/16 14:05
今天我们扯一扯CSS的预处理器——Less。
在此之前我们思考一下CSS和Javascript在语言特性上有什么区别呢?
其实它们之中最大的区别就是CSS是静态的,没有变量和函数这些概念
现在这个问题解决了,less就可以实现变量和函数的功能
通常less文件通过less工具编译成css文件。
什么叫less语言呢?首先编写.less的文件,然后我们再使用less工具,
其实就是一段脚本,让它生产CSS文件。
这个less工具最初是在浏览器上的一个JS脚本,是在浏览器端进行运行,直到后来有了node的出现,就有了node的插件,脱离浏览器,可以在服务端进行编译,把它编译成CSS文件。
那么我们为什么要使用less呢?
这是因为它可以给我们带来动态语言所具有的优势。
定义变量:如果我们有多个样式类,引用同一个变量的话,当这个变量修改时,这些样式类就
会发生修改。比如说像颜色等,我们要换皮肤的时候,只需要将这个颜色变量进行修改,整个界面的
主题颜色就发生了变化。
优化了后代选择器的写法:
支持文件引用:
这就让less文件可以进行拆分编写:
增加了函数的功能:
这里我们介绍几个常用的语法:
【常用语法:定义变量、后代选择器、文件引用、函数】
下面我们具体的介绍一下
定义变量
//编译前的Less语言@bgColor:#000; //定义变量,背景颜色.frame{ background-color:@bgColor; //使用变量}//=================================//编译后的CSS语言.frame{ background-color:#000000;}
优化了后代选择器 也就是说可以嵌套,添加伪类用&符号
//编译前的Less语言.frame{background-color:@bgColor; .select{ //添加嵌套 width:100px; } &:after{ //添加伪类 content:''; }}//=================================//编译后的CSS文件.frame{ background-color:#000000;}.frame .select{ width:100px;}.frame:after{ content:'';}
函数功能
函数:函数本身是不编译的,没有引用函数本身的话,也是不编译的
也就是说它相当于一段通用代码
//编译前的Less语言.frame{ .fun(123px); //调用函数并传参 background-color:#000000;}.fun(@px){ //封装函数 height:@px;}//=================================//编译后的CSS文件.frame{ height:123px; background-color:#000000;}
文件引用:
文件引用: @import '文件名',文件名可以是相对路径我在定义一些全局变量的时候,我们会定义在一个.less文件中然后我们引用这个全局变量文件,把这些变量添加到我们的样式类中。我们会写一个初始化的less文件,然后把要编译的所有less文件都引用进来,然后我们用工具进行编译的时候,只需要编译这个启动的less文件(初始化的less文件)它就会把其他的less文件自己加载进来,自动编译。@import 'sadsf.less'
通常我们会用一些项目构建工具将.less文件变编译成CSS文件,比如说下面我们介绍的Gulp工具
gulp文件如何编译Less文件以及如何配置gulpfile.js文件
- 十分钟入门CSS预处理器——Less
- css预处理器--less
- CSS预处理器-Less
- CSS预处理器 Less & Sass
- CSS——LESS入门
- CSS预处理器——Sass、LESS和Stylus区别及联系
- 十分钟学会less
- 十分钟学会less
- css预处理器(less学习笔记)
- CSS预处理器SASS | LESS等简介
- CSS预处理器语言:Sass、LESS、Stylus
- sass less stylus css预处理器
- css预处理器less的分析
- CSS预处理-LESS
- CSS预处理语言--Less
- CSS预处理语言 less (一) 初识less
- CSS——LESS
- CSS——LESS
- ABAP-SQL基础知识
- 怎样处理 Safari 移动端对图片资源的限制
- 使用tensorflow搭建CNN网络(3)---《深度学习》
- cocoapods
- SecureCRT登录ssh上传下载文件方法
- 十分钟入门CSS预处理器——Less
- windows安装mysql到最后一步时卡死
- 2017.9.13 序列统计 思考记录
- org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)
- 深圳地产中介口碑调查折射出行业性问题
- 461. Hamming Distance
- 数据库总结
- 读Zepto源码之assets模块
- Object中的方法及应用,会有许多不完整的阐述,还希望各位多多点评。谢谢!