Less基础教程

less是较早出现的css预处理器。 LESS API 参考

安装和使用

安装比较简单,通过nmp或bower安装即可.

npm install less -g
bower install less

新版的chrome能直接解析less样式,不进行预编译的情况下,可以在页面引入 自己写的less文件 和 less.js

less会在页面创建<style>节点,包含编译后的样式

<link rel="stylesheet/less" href="style.less" type="text/css" />
<script src="less.js" type="text/javascript"></script>

Less的语法

变量

/*变量*/
/*注意,由于变量只能定义一次,实际上他们就是“常量”.*/
@base: #f938ab;

函数

/*函数 .box-shadow(), iscolor(), isnumber(), 函数重载*/
.box-shadow(@style, @c) when(iscolor(@c)){
-webkit-box-shadow:@style @c;
box-shadow:@style @c;
} .box-shadow(@style, @alpha:50%) when(isnumber(@alpha)){
.box-shadow(@style, rgba(0,0,0, @alpha));
} /*使用变量,调用函数*/
.box{
color:saturate(@base, 5%);
border-color:lighten(@base, 30%);
div{
.box-shadow(0 0 5px, 30%)
}
}

变量和运算符

/*定义变量,使用运算符*/
@nice-blue: #5B83AD;
@light-blue: @nice-blue + #111; /*使用变量*/
#header{
color: @light-blue;
.nav{
font-size:20px;
}
.logo{
width:200px;
height:100px;
float:left;
background:#aaa;
}
} .bordered{
border-top:dotted 1px green;
border-bottom:dashed 2px blue;
}
.txt-none{
text-decoration:none;
}

混合 mixin

/*~~嵌入 其他样式*/
/*混合*/
/*混合就是一种将一系列属性从一个规则集引入(“混合”)到另一个规则集。*/
#menu a{
color:#111;
.bordered;
.txt-none
} .post a{
color:red;
.bordered;
.txt-none;
}

嵌套 nest

/*~~包含 内部样式定义*/
/*嵌套 样式规则 这样的代码更简洁, 它模仿了 HTML 的结构. & 表示当前选择器的父选择器*/ .clearfix{
display:block;
zoom:1;
&:after{
content:'';
display:block;
clear:both;
visibility:hidden;
font-size:0;
line-height:0;
height:0;
}
} /*上面等价于*/ .clearfix{
display:block;
zoom:1;
}
.clearfix:after{
content:'';
display:block;
clear:both;
visibility:hidden;
font-size:0;
line-height:0;
height:0;
} #header {
color: black;
.logo {
width: 300px;
}
} /*等价于*/
#header {
color: black;
}
#header .logo {
width: 300px;
}

包含媒体查询的嵌套

/*~~包含 媒体查询*/
/*嵌套 媒体查询*/
.screencolor{
@media screen{
color: green;
@media (min-width:768px){
color:red;
}
} @media tv{
color:black;
}
}

运算

/*定义变量 变量运算和赋值*/
@baseAlpha: 30%;
@filler: @baseAlpha * 2;
@other: @baseAlpha + @filler;
@var: 5px + 10; /*变量直接作为属性值,或运算后作为属性值*/
.test{
padding-top: @var;
color:#888 / 4;
background-color: @base + #111;
height: 100% /2 + @filler
}

bundle(只minxin bundle的一部分)

/*包含 内部元素样式定义*/
#bundle{
.button{
display:block;
border:1px solid hotpink;
background:grey;
&:hover{
background-color:#fff;
}
}
} /*嵌入 包含定义的样式*/
#header a{
color: skyblue;
#bundle > .button;
}

变量的作用域

/*变量作为样式属性值,注意变量的作用域 {}*/
/*变量可以在最外层声明,也可以在样式定义{}中声明*/
@varcolor: red;
#footer{
color: @varcolor;
@varcolor: green;
}

变量插值(插值到选择器或样式属性)

/*变量作为插值表达式 使用在选择器中,注意格式@{varname}*/
@myselector: banner;
.@{myselector}hihi{
font-weight:bold;
line-height:40px;
} 变量作为
@img: "../images";
.test-img{
color:#444;
background-image:url("@{img}/white-brand.jpg");
}

动态变量(变量的值作为另一个变量的名)

.test-var{
@found: "i am found";
@varfnd: "found";
content:@@varfnd; }

变量顺序解析 同名覆盖

.test-lazy{
width: @var2;
@a2: 9%;
height:@a2;
} @var2: @a2;
@a2: 100%; .test-lazy2{
width: @var2;
height:@a2;
} @var3 : 0;
.class{
@var3:1;
.blass{
@var3:2;
three: @var3;
@var3:3;
}
one: @var3;
} @import "other";
@base-color: green;
.test-import{
font-size:20px;
background: @base-color;
color:@dark-color;
}

继承 extend

nav ul{
&:extend(.inline);
background:blue;
} .inline{
color:red;
} .a:extend(.inline){
font-size:18px;
} .bucket{
tr & {
color:blue;
}
} .some-class:extend(tr .bucket){
border:1px dotted green;
}

Less基础教程的更多相关文章

  1. matlab基础教程——根据Andrew Ng的machine learning整理

    matlab基础教程--根据Andrew Ng的machine learning整理 基本运算 算数运算 逻辑运算 格式化输出 小数位全局修改 向量和矩阵运算 矩阵操作 申明一个矩阵或向量 快速建立一 ...

  2. <<Bootstrap基础教程>> 新书出手,有心栽花花不开,无心插柳柳成荫

    并非闲的蛋疼,做技术也经常喜欢蛋疼,纠结于各种技术,各种需求变更,还有一个很苦恼的就是UI总是那么不尽人意.前不久自己开源了自己做了多年的仓储项目(开源地址:https://github.com/he ...

  3. Memcache教程 Memcache零基础教程

    Memcache是什么 Memcache是danga.com的一个项目,来分担数据库的压力. 它可以应对任意多个连接,使用非阻塞的网络IO.由于它的工作机制是在内存中开辟一块空间,然后建立一个Hash ...

  4. Selenium IDE 基础教程

    Selenium IDE 基础教程 1.下载安装     a 在火狐浏览其中搜索附件组件,查找 Selenium IDE     b 下载安装,然后重启firefox 2.界面讲解      在菜单- ...

  5. html快速入门(基础教程+资源推荐)

    1.html究竟是什么? 从字面上理解,html是超文本标记语言hyper text mark-up language的首字母缩写,指的是一种通用web页面描述语言,是用来描述我们打开浏览器就能看到的 ...

  6. 转发-UI基础教程 – 原生App切图的那些事儿

    UI基础教程 – 原生App切图的那些事儿 转发:http://www.shejidaren.com/app-ui-cut-and-slice.html 移动APP切图是UI设计必须学会的一项技能,切 ...

  7. 【Unity3D基础教程】给初学者看的Unity教程(四):通过制作Flappy Bird了解Native 2D中的RigidBody2D和Collider2D

    作者:王选易,出处:http://www.cnblogs.com/neverdie/ 欢迎转载,也请保留这段声明.如果你喜欢这篇文章,请点[推荐].谢谢! 引子 在第一篇文章[Unity3D基础教程] ...

  8. oracle基础教程(8)oracle修改字符集

    oracle基础教程(8)oracle修改字符集 1.用dba连接数据库 -->sqlplus / as sysdba 2.查看字符集 -->SELECT parameter, value ...

  9. 改写《python基础教程》中的一个例子

    一.前言 初学python,看<python基础教程>,第20章实现了将文本转化成html的功能.由于本人之前有DIY一个markdown转html的算法,所以对这个例子有兴趣.可仔细一看 ...

  10. 每周一书-2016年8月15日到21日(bootstrap基础教程)获奖读者公布

    本次赠书 由微信昵称为“………….”的网友以10个赞获得. 请这位网友,订阅号回复你的联系方式,明天给你邮递这本书.谢谢!同时感谢<把时间当朋友>的获奖者“永梅”为<bootsrap ...

随机推荐

  1. char* 和 wchar_t* 如何互相转换

    char* 和 wchar_t* 如何互相转换 C函数可以用 wcstombs - 将宽字符转换成多字符 WCHAR ->  CHAR      mbstowcs - 把多字符把转换成宽字符 C ...

  2. Linux学习之查找命令汇总

    我们经常在linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索:        which  查看可执行文件的位置.       whereis 查看文件的位置.         ...

  3. PowerShell入门(一):PowerShell能干什么?

    原文链接:http://www.cnblogs.com/ceachy/archive/2013/01/30/WhatCanPowerShellDo.html PowerShell能干什么呢?就像序言中 ...

  4. MyBatis 最常见错误,启动时控制台无限输出日志

    你是否遇到过下面的情况,控制台无限的输出下面的日志: Logging initialized using ‘class org.apache.ibatis.logging.log4j.Log4jImp ...

  5. C语言入门(11)——switch分支语句

    C语言提供了一种用于多分支选择的switch语句, 其一般形式为: switch(表达式) { case 常量表达式1:语句1; break; case 常量表达式2:语句2; break; .... ...

  6. Twitter模块开发

    Twitter模块开发 关于Twitter这一块,自发这篇博文之后有很多人问我,有的验证成功了不跳转,或者其它原因什么的 =======我看了一下,这篇博文里面有写呀,下面以红色粗体文字注明一下 Tw ...

  7. CSliderCtrl鼠标点击精确定位

    实现CSliderCtrl的子类CXXCtrl 响应左键按下消息 ON_WM_LBUTTONDOWN() void CXXCtrl::OnLButtonDown(UINT nFlags, CPoint ...

  8. javascript 中 keyup、keypress和keydown事件

    keyup.keypress和keydown事件都是有关于键盘的事件 1. keydown事件在键盘的键被按下的时候触发,keyup 事件在按键被释放的时候触发    keydown.keypress ...

  9. 在mac上访问自带服务器权限问题

    在开发中,有时候我们需要自己的在电脑上做一些网络相关的测试功能,因此,我们必须在本地上模拟网络环境. 在模拟网络环境中,经常会遇到访问权限的问题.现在我就把自己的解决办法写出来.我用的模拟服务器站点是 ...

  10. 左右 android AES 所述机器的一部分 javax.crypto.BadPaddingException: pad block corrupted

    好多人 android 使用上述 AES 显现 javax.crypto.BadPaddingException: pad block corrupted 下面的代码发布没问题,比较自己.不解释! p ...