Less使用心得
初识less就被其函数式编程css深深吸引了,而函数式编写css带来的好处不言而喻,复用,复用,还是复用。话不多说下面简单介绍下个人使用less的心得
首先网上有很多less的安装教程,这边不多做介绍,我才用的是比较简单的less引入方式,只需要在头部script src一下就好,当然如同预编译一般,肯定是要注意less文件与less.js的位置。
当然这边有一小点要提醒注意下,因为引入的less文件是要交给less.js编译的,这时候Chrome大哥出于一系列安全机制,卡死了less在本地预览的资格。
如果想本地浏览两个方法:1.用火狐2.配置个node环境,安装anywhere模块,这样我们就可以本地预览了,当然同理本地配置服务器环境一样能解决问题
废话不多说,我们来看看less究竟有怎么样的神通
当然如果是客户端的less就完全没有这些问题了,本身编译完就会导出一个组合后的css,而后期调试只需要改改工程文件,再次导出就好
1.变量代替及四则运算
变量的引入,除了简化冗长的写法,同时为复用增加了便利,而四则运算让人有中写脚本语言的感觉
@gray:#DDC;
@normal:18px;
@center:translate(-50%, -50%);
.index{color:@gray;font-size:@normal}
.test{background-color:@gray;width:100px;height:100px;transform:@center;-webkit-transform:@center;font-size:@normal+1px}
2.层次性代码
这边就贴上我之前写过的一段代码,代码首先层次性很强,其次这种写法避免了.index_switchPart span{.....},亲子选择器,后代选择器这些冗长的写法,不仅方便调试,而且很大程度上节省了时间
.index_switchPart{
width:100%;
position:relative;
height:4.4rem;
background-color:white;
span{
position:absolute;
top:50%;
left:6%;
transform:@tf_left;
-webkit-transform:@tf_left;
color:@pink_text;
}
div{
width:3rem;
height:3rem;
background: url("../img/switch.png") no-repeat right center;
position:absolute;
right:6%;
top:50%;
transform:@tf_left;
-webkit-transform:@tf_left;
background-size: 100%;
border: none;
outline: none;
}
}
3.函数式编程
如果谈到css为人头疼的诟病,那肯定要提到兼容,各大浏览器霸主的竞争,最后为难的终究是我们这些小码农,哈哈。less对于兼容代码的复写无异于是新世纪的福音啊,稍微有点js,c基础的都能入门
.box(@color,@frist,@second,@third,@fouth){
-moz-box-shadow:@color @frist @second @third @fouth; /* Firefox */
-webkit-box-shadow:@color @frist @second @third @fouth; /* Safari 和 Chrome */
box-shadow: @color @frist @second @third @fouth; /* Opera 10.5+, 以及使用了IE-CSS3的IE浏览器 */ }
.index{
width:100px;
height: 80px;
background-color:red;
.box(gray,1px,1px,1px,1px);
}
4.数学函数
less官方文档同时还提供了一系列的数学函数,既然css中可以运算,可以调用类函数,这里数学函数的重要性就不言而喻了
这里就不一一介绍了,http://less.bootcss.com/functions/ 有空的话,可以去看看,可以说还是蛮良心了
最新文章
- 阿里云本地FTP怎么连接?通用win7,win8,win8.1,win10
- 表达式求值(noip2015等价表达式)
- Js 根据不同浏览器弹出窗口
- BZOJ3867 : Nice boat
- test命令的用法
- 格式太旧或是类型库无效。 (Exception from HRESULT: 0x80028019 (TYPE_E_UNSUPFORMAT))
- 像C++一样写JavaScript
- 基于GBT28181:SIP协议组件开发-----------第三篇SIP注册流程分析实现
- 14.4.6 Configuring Thread Concurrency for InnoDB 配置Thread 并发
- Mencached使用
- 敏捷开发(六)- SCRUM全员会议
- 显示ubuntu 10.4右上角网络图标
- day10(闭包、import模块、函数命名空间)
- 20175330 实验二《Java面向对象程序设计》实验报告
- oracle 会话 解锁
- DOM.getBoundingClientRect()
- Git教程学习(一)
- Unity和Android混合开发
- SpringBoot(二)-- 支持JSP
- Cocoa Touch提供了哪几种Core Animation过渡类型?
热门文章
- CGI与FastCGI nginx+PHP-FPM
- C#发送邮箱
- java springMVC SSM 操作日志 4级别联动 文件管理 头像编辑 shiro redis
- BPM合同管理解决方案分享
- Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define ...
- android计算每个目录剩余空间丶总空间以及SD卡剩余空间
- web音乐播放器总结
- 图形数据库Neo4J简介
- [异常解决] windows用SSH和linux同步文件&;linux开启SSH&;ssh client 报 algorithm negotiation failed的解决方法之一
- ADO.NET Entity Framework 在哪些场景下使用?