less预编译语言使用总结
以前就使用过less和sass,其实很简单,就是很长时间不用,忘记语法了,现在来总结一片使用技巧
一、注释
less的注释不会被编译到css文件中,所以提倡多使用less中的注释:/**/
二、变量
less语言中也有自己的变量,定义变量@变量名:变量值,使用该变量时,直接@变量名,就是该变量值
@width: 300px;
body { background-color: white; }
.div1 { width: @width; }
三、混合(mixin)
混合可以将一个定义好的class A轻松引入到另一个class B中,从而简单实现class B继承class A中所有属性,还可以带参数地调用。
例如定义一个样式类.border,直接用到另一个样式类.box中,另一个样式类就很方便的具有了这个类的样式,很好的实现了css代码的复用;
再例如有一个.box2,它和.box有一些属性相同,那就直接继承.box再做特定的修改即可:
.border{
border:1px solid black;
}
.box{
.border;
}
.box2{
.box;
margin:20px;
}
混合(mixin):可带参数,以实现传入变量参数来用一个样式类生成各种不同的样式:
.border2(@border_width){ //定义变量参数
border:@border_width solid black;
}
.box3{
.border2(5px);//参数位置传入变量以控制不同的样式
}
.box4{
.border2(10px);
}
混合(mixin)参数可带默认值(多个参数之间使用逗号隔开)
.border3(@border_width2:5px){
border:@border_width2 solid black;
}
.box5{
.border3();
}
一些常见的兼容性写法就可以用混合封装起来进行简化:
.border_radius(@border_radius:2px){
border-radius:@border_radius;
-moz-border-radius:@border_radius;
}
四、模式匹配
有些情况想根据传入的参数来改变混合的默认呈现,比如:
下面通过less模式匹配,定义不同央视模式的三角(top模式和bottom模式),但无论哪种模式,@_(放在模式参数位置)定义的样式所有模式都公有
.triangle(@_,@w,@c){
width:0;
height:0;
overflow:hidden;
}
.triangle(top,@w,@c){
border-width:@w;
border-color:transparent transparent @c transparent;
borser-style:dashed dashed solid dashed;
}
.triangle(bottom,@w,@c){
border-width:@w;
border-color:transparent transparent @c transparent;
borser-style:solid dashed dashed dashed;
}
.triangle2{
.trangle(bottom,20px,red);
}
.triangle3{
.trangle(top,30px,green);
}
五、运算(对变量进行加减乘除等)
@box_width:100px;
.box6{
width:(@box_width-10)*2;
}
六、嵌套
可以在一个选择器中直接潜逃另一个选择器来实现继承,这样很大程度减少代码量,并且代码看起来结构更清晰:
.list1{
width:600px;
height:600px;
li{//相当于在外边写.list1 li{}
height:20px;
a{
float:left;
&:hover{ //&代表上一层选择器,所以这样写相当于 .list1 a:hove{}
color:red;
}
}
}
}
七、@arguments
@arguments包含了所有传递进来的参数,如果你不想单独处理每一个参数的话就可以像这样写:
.box-shadow(@x:0;@y:0,@blur:1px,color:#000){
box-shadow:@arguments; //相当于()参数里的值放到了这
-moz-box-shadow:@auguments;
-webkit-box-shadow:@arguments;
}
.box-shaow(2px,5px);
八、避免编译
有时候需要输出一些不正确的css语法或者使用一些less不认识的专有语法
//要输出这样的值我们可以在字符串前加一个~
.class1{
filer:~"ms:alwaysHasItsOwnSyntax.For.Stuff()";
}
完整的Less中文文档:
http://www.bootcss.com/p/lesscss/
less预编译语言使用总结的更多相关文章
- 【前端开发】优化代码之减少引入,css预编译语言的优点,stylus的使用
前言:我必须得承认在最最最开始的时候,我对于css的预编译是非常不以为然的,这是错误的.一般在页面编写过程中,我会将需要reset的css放在reset.css中,讲会需要重复用到的放置到public ...
- laravel 中CSS 预编译语言 Sass 快速入门教程
CSS 预编译语言概述 CSS 作为一门样式语言,语法简单,易于上手,但是由于不具备常规编程语言提供的变量.函数.继承等机制,因此很容易写出大量没有逻辑.难以复用和扩展的代码,在日常开发使用中,如果没 ...
- LESS SCSS 预编译语言
前 言 JRedu LESS 是一门 CSS 预处理语言,它扩展了 CSS 语言,增加了变量.Mixin.函数等特性,使 CSS 更易维护和扩展. LESS 为 Web 开发者带来了福音,它在 ...
- CSS预编译语言-LESS
LESS的作用 CSS层叠样式表,它是标记语言,不是编程语言:所有的预编译CSS语言(less/sass…)都是赋予了CSS的面向对象思想 LESS的编译 LESS叫做预编译CSS:写好的LESS代码 ...
- css预编译语言 sass scss(变量$var, css嵌套规则,@import规则,@extend,@mixin)
什么是sass Sass 是对 CSS 的扩展,让 CSS 语言更强大.优雅. 它允许你使用变量.嵌套规则. mixins.导入等众多功能, 并且完全兼容 CSS 语法. Sass 有助于保持大型样式 ...
- css预编译语言sass——mixin的使用
以根据不同屏幕吃寸动态应用背景图片为例 新建一个mixin如下: @mixin bg_img($path, $ext){ @media screen and (max-device-width: 76 ...
- vue项目配置less预编译语言
当所有东西都 准备好之后 : 第一步: 安装less依赖,npm install less less-loader --save 第二步:找到webpack配置文件webpack.base.conf. ...
- CSS预编译器配置-------LESS Sass Stylus webstorm
预编译器配置说明 开头语,发挥CSS预处器的作用是一种很有挑战性的事情.CSS预处器有不同的语言,就有不同的语法和功能. 语法 在使用CSS预处器之前最重要的是对语法的理解,幸运的是,这三种CSS预处 ...
- CSS预处理器Sass(Scss)、Less、Stylus
CSS 预处理编译器能让我成程序化其的方式编写CSS代码,可以引入CSS中没有的变量.条件.函数等特性,从而让代码更简单易维护,但一般按预处理器语法编写的代码无法直接在浏览器中运行,需用通过工具比如g ...
随机推荐
- 该如何将MathType公式粘贴到文档中
MathType是一款非常好用的数学公式编辑器,因为它与很多的文档处理器都能够很好地兼容,因此其使用范围非常的大.MathType公式编辑器编辑的公式与数学符号等都符号国际期刊的出版标准,并且上手容易 ...
- 机房收费系统(VB.NET)——超具体的报表制作过程
之前做机房收费系统用的报表是Grid++Report,这次VB.NET重构中用到了VisualStudio自带的报表控件. 刚開始当然对这块功能非常不熟悉,只是探究了一段时间后还是把它做出来了. 以下 ...
- Linux中buffer/cache,swap,虚拟内存和page ++
1.Buffer 和 cache Free 命令相对于top 提供了更简洁的查看系统内存使用情况: [apptest@vs022 ~]$ free -m ——以MB为单位 ...
- iOS开发之--Mac终端命令大全
目录操作 命令名 功能描述 使用举例 mkdir 创建一个目录 mkdir dirname rmdir 删除一个目录 rmdir dirname mvdir 移动或重命名一个目录 mvdir dir1 ...
- python技巧之下划线(二)
Python 用下划线作为变量前缀和后缀指定特殊变量 _xxx 不能用’from module import *’导入 __xxx__ 系统定义名字 __xxx 类中的私有变量名 核心风格:避免用下划 ...
- Codevs (3657括号序列 )
题目链接:传送门 题目大意:中文题,略 题目思路:区间DP 这个题是问需要添加多少个括号使之成为合法括号序列,那么我们可以先求有多少合法的括号匹配,然后用字符串长度减去匹配的括号数就行 状态转移方程主 ...
- tfs+git
TFS+GIT 一:背景介绍 技术团队的代码管理工具原来使用的是纯TFS方案,使用两年后发现一些问题:体积太大,每次新建一个分支需要本地下载一份代码:操作不便,功能分支的建立.合并不方便,本地有很多同 ...
- 【BZOJ1951】[Sdoi2010]古代猪文 Lucas定理+CRT
[BZOJ1951][Sdoi2010]古代猪文 Description 求$X=\sum\limits_{d|n}C_n^d$,$Ans=G^X (\mod 999911659)$. Input 有 ...
- Spring中 PROPAGATION_REQUIRED 解释
转自:https://blog.csdn.net/bigtree_3721/article/details/53966617 事务传播行为种类 Spring在TransactionDefinition ...
- 160802、1.06s删除10w条重复记录只保留一条(mysql)及linux删除乱码文件
上次发表过的一遍删除重复记录的文章,其中最优的方案三删除1w条也花了0.07秒而2w条就已经花掉了4秒.今天进行了进一步优化,测试删除10w条只花了1.06秒.速度提升了很多. 建表语句 CREATE ...