为什么我要使用Less

less的作为编写css的工具插件,省时、方便、检测,具体的安装,请参考我的一篇文章《sublime text3 个人使用心得》,里面我讲解了安装方法,使用webstorm的乘客,我会再写一篇配合使用less的文章的。

Now,get up my car , I will take with you to fly!

* LESS语法
--------------------------------------------------变量-------------------------------------------------
* 【变量】
    less文件 css文件

       less文件                             Css文件

@nice-blue: #5B83AD;                       #header {
@light-blue: @nice-blue + #111; color: #6c94be;
}
#header {
color: @light-blue;
}

【变量详解:】
* 作为属性值,加减乘除
   @base: 5%;
   @filler: @base * 2; => 10%
   @other: @base + @filler; => 15%
   color: #888 / 4; => #222
   background-color: @base-color + #111;
   height: 100% / 2 + @filler; => 60%
   @var: 1px + 5; => 6px

* 用于选择器

       less文件                             CSS文件

       @my-selector:banner;               .banner{
.@{my-selector}{ font-weight: bold;
font-weight: bold; }
}

* 用于URL

       @images: "../img";
body {
background:url("@{images}/white-sand.png");
}

* import表达式(注意:less中可以使用,css中不能用,因为这会增加客户端请求资源)

@themes: "../../src/themes";
@import "@{themes}/tidal-wave.less";
这样在该less文件中,就引入了其他less文件了,NB不

* 用于属性名

       @property:color;                         .widget {
.widget { color: #0ee;
@{property}: #0ee; background-color: #999;
background-@{property}:#999; }
}

* 用于变量名

       @fnord:"I am fnord.";
@var:"fnord";
content:@@var; content:"I am fnord.";

* 变量是延迟加载的,不一定要在使用之前定义

       .lazy-eval-scope {       .lazy-eval-scope {
width: @var; width: 9%;
@a: 9%; }
}
@var: @a;

* 当变量被多次定义时,以最后一次定义为准,且从当前作用域向上搜寻

       @var: 0;                     .class {
.class { one:;
@var:; }
.brass { .class .brass {
@var:; three:;
three: @var; }
@var: 3;
}
one: @var;
}

* 默认值:可以建立变量库来统一设定默认值,然后通过重新定义来覆盖变量

@base-color:green;
@dark-color:darken(@base-color,10%);
@import "library.less";
@base-color: red;

【变量混合模式】:某一个/些引入其它定义好的样式

    less文件                                    css文件

    .bordered {                                .bordered {
border-top: dotted 1px black; border-top: dotted 1px black;
border-bottom: solid 2px black; border-bottom: solid 2px black;
} }
#menu a { #menu a {
color: #111; color: #111;
.bordered; border-top: dotted 1px black;
} border-bottom: solid 2px black;
.post a { }
color: red; .post a {
.bordered; color: red;
} border-top: dotted 1px black;
border-bottom: solid 2px black;
}

* 支持带参混合:该样式不会出现在.css中,推荐此种写法
.样式1( ){ ... } 
.样式2(@num1, @num2){ ... }
.样式3(@num: 默认值){ ... }

------------------------------------嵌套 子元素的样式 可以在父元素的样式里面定义---------------------------------------------------------------

less的套子写法,令我由无法自拔,到挺身而出,真是透心凉、心飞扬呀,不好意思,一激动就想开火车,我忘了我TM还在写技术博客呢,sorry,那么现在我们吸收LESS的精子..不...是精华了....

   原来                           使用嵌套

   #header {                     #header {
color: black; color: black;
} .navigation {
#header .navigation { font-size: 12px;
font-size: 12px; }
} .logo {
#header .logo { width: 300px;
width: 300px; }
} } 学会这种写法,妈妈再也不用担心我写错层级类名了

* &符号:代表this,也就当前这一层的元素

   less文件                          CSS文件

   .clearfix {                      .clearfix {
display: block; display: block;
zoom:; zoom:;
}
&:after { .clearfix:after {
content: " "; content: " ";
display: block; display: block;
font-size:; font-size:;
height:; height:;
clear: both; clear: both;
visibility: hidden; visibility: hidden;
} }
}

* @Media, @supports and @document

   less文件                             CSS文件

   .screen-color {                     @media screen {
@media screen { .screen-color {
color:green; color: green;
@media(min-width:768px){ }
color:red; }
} @media screen and (min-width: 768px) {
} .screen-color {
@media tv { color: red;
color: black; }
} }
} @media tv {
.screen-color {
color: black;
}
}

* #
less文件 CSS文件

#a { #a {
color: blue; color: blue;
@font-face { }
src: made-up-url; @font-face {
} src: made-up-url;
padding: 2 2 2 2; }
} #a {
padding: 2 2 2 2;
}
-------------------------------------注释--------------------------------------------------------------
"//"用于注释内容,在CSS文件中不可见
/**/,在CSS文件中可显示,但是被注释的

---------------------------------------------------------------------------------------------------
* Function

    less文件                                        CSS文件

    @base: #f04615;                                 .class {
@width: 0.5; width:50%;
.class { color:#f6430f;
width:percentage(@width); background-color: #f8b38d;
color:saturate(@base,5%); }
background:spin(lighten(@base,25%),8);
}

本人也只是学习了一点less的皮毛,less有很多内容,但个人感觉不是很实用,在使用过程中,变量、函数、嵌套,是用的最多的,限于自身的长度,不能再深入了,下面是个人编写的公共less库,

在个人的less文件中,引入common.less库, @import url(common.less);   然后调用里面的参数即可,也可以结合自身习惯编写自己的公共库

个人common.less文件

@charset 'utf-8';
//常用变量及样式定义,作为一个工具Less被其他Less
//字体大小:默认14px
//去除a和label的虚线
.remove_dotted(){
a,label {blr:~'expression(this.onFocus=this.blur())'}
a,label {outline:none;}
}
.font(@size:14px){
font-size:@size;
}
.h100(){
height:100%;
}
.w100(){
width:100%;
}
//边框设置
.border(@w:1px,@c:#eee){
border:@w solid @c;
}
//定位
.pos(r){
position:relative;
}
.pos(a){
position:absolute;
}
.pos(f){
position:fixed;
}
//背景图片,.bg("..images/1.png");
.bg(@url){
background:url(@url) no-repeat;
}
//浮动,div{.fr;}
.fl(){
float:left;
}
.fr(){
float:right;
} .list-sn(){
list-style:none;
}
//垂直居中
.pos-box-cc(@w,@h,@pos:absolute){
width:@w;
height:@h;
left:50%;
top:50%;
margin:-@w/2 0 0 -@h/2;
}
.bc(){
margin:0 auto;
}
//文字居中
.tc(){
text-align:center;
}
//文字垂直居中
.tcc(@h){
text-align:center;
line-height:@h;
}
.l-h(@h){
height:@h;
line-height:@h;
}
//display
.d-b(){
display:block;
}
.d-i(){
display:inline;
}
.d-ib(){
display:inline-block;
*display:inline;
*zoom:;
}
.d-t(){
display:table;
}
.d-n(){
display:none;
}
.t-n(@p:none){
text-decoration:@p;
}
.tc(){
text-align:center;
}
.tl(){
text-align:left;
}
.tr(){
text-align:right;
}
//圆角
.radius(@r){
-webkit-border-radius:@r;
-moz-border-radius:@r;
border-radius:@r;
} //三角形
.triangle(top,@w:5px,@c:#eee){
border-width:@w;
border-color:transparent transparent @c transparent;
border-style:dashed dashed solid dashed;
} .triangle(bottom,@w:5px,@c:#eee){
border-width:@w;
border-color:@c transparent transparent transparent;
border-style:solid dashed dashed dashed; }
.triangle(left,@w:5px,@c:#eee){
border-width:@w;
border-color:transparent @c transparent transparent;
border-style:dashed dashed solid dashed;
} .triangle(right,@w:5px,@c:#eee){
border-width:@w;
border-color:transparent transparent transparent @c;
border-style:solid dashed dashed dashed; }
.triangle(@_){
width:;
height:;
overflow:hidden;
}
.clearfix(){
*zoom:;
&:before,
&:after{
display:table;
content: "";
}
&:after {
clear: both;
}
} .box-sizing(@box){
-webkit-box-sizing:@box;
-moz-box-sizing:@box;
-ms-box-sizing:@box;
-o-box-sizing:@box;
sizing:@box;
}
.box-shadow(@shadow){
-webkit-box-shadow:@shadow;
-moz-box-shadow:@shadow;
-ms-box-shadow:@shadow;
-o-box-shadow:@shadow;
shadow:@shadow;
} //过度
.transition(@trans){
-webkit-transition:@trans;
-moz-transition:@trans;
-ms-transition:@trans;
-o-transition:@trans;
transition:@trans;
}
.transform-origin(@origin){
-webkit-transition-origin:@origin;
-moz-transition-origin:@origin;
-ms-transition-origin:@origin;
-o-transition-origin:@origin;
transition-origin:@origin;
}
.transform(@transform){
-webkit-transform:@transform;
-moz-transform:@transform;
-ms-transform:@transform;
-o-transform:@transform;
transform:@transform;
}
.create3d(@h){
-webkit-perspective:@h;
perspective:@h;
}
.use3d(){
-webkit-transform-style:preserve-3d;
transform-style:preserve-3d;
} //动画
.animation(@as){
-webkit-animation:@as;
-moz-animation:@as;
-o-animation:@as;
animation:@as;
}
.trans3d(){
-webkit-transform-style:preserve-3d;
-moz-transform-style:preserve-3d;
transform-style:preserve-3d;
}
.trans-origin(@to){
-webkit-transform-origin:@to;
-moz-transform-origin:@to;
transform-origin:@to;
}

   

Less使用——让老司机带你飞的更多相关文章

  1. 老司机带你走进Core Animation

    为什么时隔这么久我又回来了呢? 回来圈粉. 开玩笑的,前段时间ipv6被拒啊,超级悲剧的,前后弄了好久,然后需求啊什么的又超多,所以写好的东西也没有时间整理.不过既然我现在回来了,那么这将是一个井喷的 ...

  2. 老司机带你开飞机 一: mssql on linux 安装指导

    通常在本机开发环境中需要搭建所有的服务,还要修改本地的hosts,实在是不胜其烦.如今有了docker,完全不用污染本地环境,且看老司机带你搭建一个asp.net core的开发环境集群.愿你走出虚拟 ...

  3. Kali Linux来袭~老司机带你进击

    Kali是BackTrackLinux完全遵循Debian开发标准彻底的完全重建.全新的目录框架,复查并打包所有工具,我们还为VCS建立了Git树. 本次推荐内容主要介绍Kali-Linux的安装,包 ...

  4. 老司机带你玩转面试(2):Redis 过期策略以及缓存雪崩、击穿、穿透

    前文回顾 建议前一篇文章没看过的同学先看下前面的文章: 「老司机带你玩转面试(1):缓存中间件 Redis 基础知识以及数据持久化」 过期策略 Redis 的过期策略都有哪些? 在聊这个问题之前,一定 ...

  5. 老司机带你玩转面试(3):Redis 高可用之主从模式

    前文回顾 建议前面文章没看过的同学先看下前面的文章: 「老司机带你玩转面试(1):缓存中间件 Redis 基础知识以及数据持久化」 「老司机带你玩转面试(2):Redis 过期策略以及缓存雪崩.击穿. ...

  6. 老司机带你玩转面试(4):Redis 高可用之哨兵模式

    前文回顾 建议前面文章没看过的同学先看下前面的文章: 「老司机带你玩转面试(1):缓存中间件 Redis 基础知识以及数据持久化」 「老司机带你玩转面试(2):Redis 过期策略以及缓存雪崩.击穿. ...

  7. 老司机带你玩转面试(5):Redis 集群模式 Redis Cluster

    前文回顾 建议前面文章没看过的同学先看下前面的文章: 「老司机带你玩转面试(1):缓存中间件 Redis 基础知识以及数据持久化」 「老司机带你玩转面试(2):Redis 过期策略以及缓存雪崩.击穿. ...

  8. 老司机带你用vagrant打造一站式python开发测试环境

      前言 作为一个学习和使用Python的老司机,好像应该经常总结一点东西的,让新司机尽快上路,少走弯路,然后大家一起愉快的玩耍. 今天,咱们就使用vagrant配合xshell打造一站式Python ...

  9. 老司机带你体验SYS库多种新玩法

    导读 如何更加愉快地利用sys库做一些监控? 快来,跟上老司机,体验sys库的多种新玩法~ MySQL5.7的新特性中,非常突出的特性之一就是sys库,不仅可以通过sys库完成MySQL信息的收集,还 ...

随机推荐

  1. UITableViewcell autolayout下动态高度

    项目中最经常使用的一个UI就是UITableView了.iOS7.8进一步优化了复用机制,用起来相当爽.配合Autolayout,适配工作减轻了非常多. 曾经做适配工作都是在heightForRow里 ...

  2. hdu 5465 Clarke and puzzle 二维线段树

    Clarke and puzzle Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php? ...

  3. 深入浅出js中的this(一)

    Q:this是什么? A:this是Javascript语言的一个关键字,它代表函数运行时,自动生成的一个内部对象,在每个 function 中自动根据作用域(scope) 确定, 指向的是此次调用者 ...

  4. TableView不显示没内容的Cell怎么办?

    类似这种,我不想让下面那些空的显示. 很简单: self.tableView.tableFooterView = [[UIView alloc] init]; 加完这句之后就变成了这样:

  5. matlab norm 范式

    格式:n=norm(A,p) 功能:norm函数可计算几种不同类型的矩阵范数,根据p的不同可得到不同的范数 p  返回值  1  返回A中最大一列和,即max(sum(abs(A)))  2 返回A的 ...

  6. 设置checkbox选中,设置radio选中,根据值设置checkbox选中,checkbox勾选

    设置checkbox选中,设置radio选中,根据值设置checkbox选中,checkbox勾选 >>>>>>>>>>>>&g ...

  7. nyoj 86 找球号(一)

    找球号(一) 时间限制:3000 ms  |            内存限制:65535 KB 难度:3   描述 在某一国度里流行着一种游戏.游戏规则为:在一堆球中,每个球上都有一个整数编号i(0& ...

  8. VIM 选择多行,复制粘贴

    进入VIM,比如编辑一个文件, 1.进行选择,是V模式,按V键,进入该模式,然后选择要复制的行 2. 选择好之后,再按y键,即使复制到了 3.然后光标进入要复制的行之后,按一下P键,就粘贴了,oh y ...

  9. php pdo oracle中文乱码

    在/etc/profile.d/简历oracle.sh 内容如下在NLS_LANG设置编码 ORACLE_HOME=/usr/lib/oracle/12.1/client64 C_INCLUDE_PA ...

  10. Opencv——灰度直方图

    灰度直方图是灰度级的函数,它表示图像中具有某种灰度级的像素的个数,反映了图像中某种灰度出现的频率. 如果将图像总像素亮度(灰度级别)看成是一个随机变量,则其分布情况就反映了图像的统计特性,这可用pro ...