Less
来源:互联网 发布:软件编程培训机构 编辑:程序博客网 时间:2024/06/14 01:28
(二)Less/Sass扩展CSS
问题概述:
CSS太简陋缺少样式的加运算,每次都要重写,不能很好利用相同部分的样式。总而言之就是不能像编程语言一样灵活的操作CSS。(这也没办法,本来就是视图UI的事情,没想到程序员要求这么多)
实际场景:
.a{ color: red; margin-top: 30%;}.b{ color: red; margin-top: 30%; border: 2px}.c{ color: red; margin-top: 40%; border: 2px}
b是a的扩展却要重写所有a中的样式,c是b的一个参数值的改动也要重写其余内容。
less vs sass
Less和Sass是扩展CSS的两个代表,以下引自知乎:
* SASS2007年诞生,最早也是最成熟的CSS预处理器,拥有ruby社区的支持和compass这一最强大的css框架,目前受LESS影响,已经进化到了全面兼容CSS的SCSS。
* LESS2009年出现,受SASS的影响较大,但又使用CSS的语法,让大部分开发者和设计师更容易上手,在ruby社区之外支持者远超过SASS,其缺点是比起SASS来,可编程功能不够,不过优点是简单和兼容CSS,反过来也影响了SASS演变到了SCSS的时代,著名的Twitter Bootstrap就是采用LESS做底层语言的。
less demo
他们的功能类似,这里就以less举例子(sass要装ruby懒得装)
安装less
npm i -g less
写a.less文件
/*------------变量---------*///双斜杠注释生成css文件后自动消失@v1: red;#header{ color:@v1;}/*---------Mixin(混合)---------*/.a{ color: red; margin-top: 30%;}.b{ .a; border: 2px}/*----------传参的Mixin----------*/.aa(@p:30%){//这里默认参数30% color: red; margin-top: @p;}.c{ .aa(40%); border:2px;} /*---------带条件判断的Mixin---------*/@t: 10%;.aaa(@p) when (@p < 30%){ color: red; margin-top: @p + 10%;//注意四则运算需要前后空格隔开}.aaa(@p) when (@p > 30%){ color: red; margin-top: @p - 10%;}.d{ .aaa(13%);}/*---------内嵌---------*/div{ color:red; p{ margin-top:2px; }}/*引入其他css或less文件*///@import 'xx.css/less'
两种方式解析:
1直接将less转换成css
lessc a.less a.css (-x可以压缩css)
2在html中css引入的时候rel属性为stylesheet/less,然后要引入less.js
<link rel="stylesheet/less" type="text/css" href="a.less" /><script src="less.js" type="text/javascript"></script>
推荐第一种,第二种是既浪费流量,又浪费浏览器性能。
sass的用法参考大牛阮一峰的入门教程http://www.ruanyifeng.com/blog/2012/06/sass.html
小结
css因为先天的缺陷,缺少变量、混合等方便的用法,less是css的简单扩充,用法简单,但可以减少工作量。bootstrap源码就是less构建的。不过于此同时我们应该搞清楚less的使用场景,如果项目中css很少的情况中,是不需要less来加快css开发的。
- less
- less
- LESS
- less
- less
- less
- less
- less
- LESS
- less
- less
- less
- Less
- LESS
- Less
- Less
- LESS
- less
- MySql从一窍不通到入门(九)Sharding的实现和规避
- Webpack
- easyUI下拉框控件easyui-combobox使用后台json文件填充数据失败的问题
- socket 网络编程
- 表达式的化简
- Less
- 交叉开发
- [NA]Lab5:反幂法求矩阵特征根
- JZ2440 第13章 LCD控制器(1)
- Vue
- 二维数组的遍历并按标准格式输出
- VMWare与Centos7.0无法共享文件夹的问题总结
- 欢迎使用CSDN-markdown编辑器
- React