5.less常见使用
2016-02-17 17:11
281 查看
less和sass就是使用其他工具将某种格式的文本重新编译成css文件,好处在于方便工程管理、避免写大量的重复内容和利于维护。我们常常使用的方式是:写好less后在本地编译后使用编译后的css文件,虽然sass和less能做到请求时进行编译,但是会带来额外的开销,所以我们一般会本地进行编译,以下内容能让你在两个小时内迅速掌握less的使用。
设置less的字符编码方式
使用变量
需要说明的是:为了以后维护和修改的方便,我们一般将变量写在各个文件的开始位置。
简单混合的使用
就是在其他选择器中调用已经有的类选择器。
在混合中调用不同的参数
在调用时传入不同的值就会得到不同的样式,遇到使用多个值的情况使用","隔开
当然有有多层混合使用的情况
在混合中使用默认值
使用默认值的混合类虽然可以直接使用.border调用,但是不建议这样使用,语义上是不明确的。只要文件中存在.border{},不管有没有带参数和.border(){}是相同的,这时我们调用时要使用.border();明确自己使用的是什么,如果即有.border{},又有.border(){}最好将.border(){}写在.border()后面,就是使用层叠。由于.border(){}编译后不会以直接形式存在于最终文件中,所以使两种写法都会有效。
匹配模型
我们要在工程中使用各种方向的三角形
在span中我们在.triangle(top,...)调用不同的朝向就是不同的三角形。
假如你自己写了以上代码,会出现梯形而不是三角线,这是因为浏览器会有默认元素的宽和高。我们要将每一个朝向都添加清除浏览器默认显示,难道每一个都再写一遍吗?
这样写的目的就是当在调用时,都默认调用一次样式,就解决了上面的问题。
使用运算符
嵌套使用
使用arguments一组参数使用
很多css样式要调用一组样式,为了方便调用我们使用arguments
!important和css中使用是一样的
设置less的字符编码方式
@charset 'utf-8';调用其它已有的less文件(三种方式)
@import url('back.less');
@import 'back.less';
@import 'back';
使用变量
@bgcolor: #ab0; body{ background-color: @bgcolor; }
需要说明的是:为了以后维护和修改的方便,我们一般将变量写在各个文件的开始位置。
简单混合的使用
<div></div>
@bordercolor: #ab0; .border{ border: 1px solid @bordercolor; } div{ width: 300px; height: 300px; .border; }
就是在其他选择器中调用已经有的类选择器。
在混合中调用不同的参数
在调用时传入不同的值就会得到不同的样式,遇到使用多个值的情况使用","隔开
.border(@bordercolor){ border: @border solid 1px; } div{ width: 300px; height: 300px; .border(red); }
当然有有多层混合使用的情况
.border(@bordercolor){ border: solid 1px @bordercolor; } .mix{ .border(#ab0); }
在混合中使用默认值
.border(@bordercolor: #ab0){ border: @bordercolor; } div{ .... .border(); }
使用默认值的混合类虽然可以直接使用.border调用,但是不建议这样使用,语义上是不明确的。只要文件中存在.border{},不管有没有带参数和.border(){}是相同的,这时我们调用时要使用.border();明确自己使用的是什么,如果即有.border{},又有.border(){}最好将.border(){}写在.border()后面,就是使用层叠。由于.border(){}编译后不会以直接形式存在于最终文件中,所以使两种写法都会有效。
匹配模型
我们要在工程中使用各种方向的三角形
@trianglecolor: #ab0; /* 向上的三件形 */ .triangle(top,@width,@color){ border-width: @width; border-color: transparent transparent @color transparent; border-style: dashed dashed solid dashed; } /* 向右的三角形 */ .triangle(right,@width,@color){ border-width: @width; border-color: transparent transparent transparent @color ; border-style: dashed dashed dashed solid; } /* 向下的三角形 */ .triangle(bottom, @width, @color){ border-width: @width; border-color: @color transparent transparent transparent; border-style: solid dashed dashed dashed; } /* 向左的三角形 */ .triangle(left, @width, @color){ border-width: @width; border-color: transparent @color transparent transparent; border-style: dashed solid dashed dashed; } span{ height: 0; .triangle(left,10px,@trianglecolor); }
在span中我们在.triangle(top,...)调用不同的朝向就是不同的三角形。
假如你自己写了以上代码,会出现梯形而不是三角线,这是因为浏览器会有默认元素的宽和高。我们要将每一个朝向都添加清除浏览器默认显示,难道每一个都再写一遍吗?
.triangle(@_, @width, @color){ display: block; padding: 0; width: 0; overflow: hidden; }
这样写的目的就是当在调用时,都默认调用一次样式,就解决了上面的问题。
使用运算符
div{ width: 100px; height: 100px - 20; background: #abc; }实际上在less中内置了很多函数,这里就不再介绍。
嵌套使用
<body> <ul> <li>项目一</li> <li>项目二</li> <li>项目三</li> <li>项目四</li> <a href="#">1234</a> </ul> </body>
ul{ width: 300px; margin: 0 auto; margin-top: 30px; list-style: none; background-color: #ab0; li{ margin-top: 5px; background-color: #ccc; /* 相当于ul li:hover{} */ &:hover{ background-color: #def; } } a{ color: #191919; font-size: 16px; text-decoration: none; &:hover{ background-color: red; } } }特别注意&:的方便使用
使用arguments一组参数使用
很多css样式要调用一组样式,为了方便调用我们使用arguments
.border(@width:1px,@color:red,@style:solid){ border: @arguments; }使用~告诉编译器不要编译该部分内容
div{ width: ~'cale(300-20s)'; }使用!important
!important和css中使用是一样的
div{ .border() !important; }
相关文章推荐
- phpstorm 使用技巧总结
- hdu 1394 Minimum Inversion Number
- itext 处理中文问题 Font 'STSong-Light' with 'UniGB-UCS2-H' is not recognized 版本问题
- js.net 多语言&web service 添加服务引用和web 引用
- 目录
- 【python笔记 一 】变量及运算符
- jquery animate实现动态进度条
- 2016.2.17问题总结
- MySQL 初次装时密码为空 为其设置新密码
- 通过Spring Session实现新一代的Session管理
- ng-repeat
- Android进阶笔记13:Android 系统上一款开源的图表库
- SQL语句将某字段查询出以逗号隔开
- ubuntu中redmine局域网内发送邮件提示redmine getaddrinfo: Name or service not known
- Hive - hive.groupby.skewindata环境变量与负载均衡
- haproxy 安装与记录访问日志
- POI操作Excel常用方法总结 (转)
- 图片廊
- 《用户体验要素》读后感
- Road to Django