推荐在Brackets安装"LESS AutoCompile"插件,当保存less文件会自动生成或保存相应的css文件。

变量

以@开头声明变量,并且对变量进行分类,比如颜色变量、字体大小变量、模版变量、布局变量,等等。比如:

@fontSize:#000;

嵌套

<div class="container">
    <p>hello</p>
</div>

.container{
    font-size: @fontSize;
    p {
        text-align:center;

&:after{
            content: 'hel';
        }
    }
}

以上有3层嵌套,分别是.container, p, &:after(&表示p本身)。

Mixins,或者叫css rule

把一个类作为另一个类的样式值。

● 基本

.myRule {
    text-align: center;
}

p {
    .myRule;
}

● 定义一个带变量的类

.border-radius(@radius){
    -webkit-border-radius:@radius;
    -moz-border-radius:@radius;
    -o-border-radius:@radius;
    -ms-border-radius:@radius;
    border-radius: @radius;
}

变量可以有一个默认值:

.border-radius(@radius:10px){
    -webkit-border-radius:@radius;
    -moz-border-radius:@radius;
    -o-border-radius:@radius;
    -ms-border-radius:@radius;
    border-radius: @radius;
}

定义多个变量也是允许的:

.border(@width:2px, @style:solid,@color:@fontColor){
   
}

然后使用这个带变量的类,就像使用函数一样。

img {
    .border-radius(5px);
}

● 可以把一个Mixin放在另一个Maxin中,比如:

.myRule {
    text-align: center;
    .border-radius(5px);
}

● 根据变量不同的值使用不同的样式

.set-text-color(@bg-color) when (lightness(@bg-color) >= 50%){
    color: @dark;
    background: @bg-color;
}

.set-text-color(@bg-color) when (lightness(@bg-color) < 50%){
    color: @light;
    background: @bg-color;
}

然后这样应用:

.box-1{
    .set-text-color(darken(@template_color,20%));
}

操作符

@padding:10px;

.container{
   
    padding: @padding+10;
}

可以用+,-,*,/。

less的内置函数

● 让颜色更深:darken(@color,20%);
● 获取颜色值:color("fff"),返回#aaa
● 获取图片大小:image-size("temp.png"),返回10px 10px
● 获取图片宽度:image-width("temp.png")
● 获取图片高度:image-height("temp.png")
● 单位转换:convert(9s, "ms"), convert(14cm, mm)
● 链接资源 data-uri(mimetype,url),第一个参数可省

例子:data-uri('../data/temp.jpg')
CSS输出:url('data:image/jpeg;base64,bm90IGFjdHVhbGx5IGEganBlZyBmaWxlCg==');
浏览器中输出:url('../data/temp.jpg');

例子:data-uri('image/jpeg;base64', '../data/image.jpg');
CSS输出:url('data:image/jpeg;base64,bm90IGFjdHVhbGx5IGEganBlZyBmaWxlCg==');

例子:data-uri('image/svg+xml;charset=UTF-8', 'image.svg');
CSS输出:url("data:image/svg+xml;charset=UTF-8,%3Csvg%3E%3Ccircle%20r%3D%229%22%2F%3E%3C%2Fsvg%3E");

● 默认值 default()

例子:在CSS规则中,default()表示true

html:

<div class="container">
        <div class="box box1">box1</div>
        <div class="box box2">box2</div>
        <div class="box box3">box3</div>
    </div>

less:

.box{
    width: 100px;
    height: 100px;
    border: 1px solid black;
}

.backcolor(red){background-color: red;}
.backcolor(green){background-color: green;}
.backcolor(@color) when (default()){background-color: @color;}

.box1{
    .backcolor(red);
}

.box2{
    .backcolor(green);
}

.box3{
    .backcolor(orange);
}

css:

.box {
  width: 100px;
  height: 100px;
  border: 1px solid black;
}
.box1 {
  background-color: red;
}
.box2 {
  background-color: green;
}
.box3 {
  background-color: orange;
}

● 拼接数值和单位:unit(5, px), 输出:5px
● 去掉单位获取值:unit(5px),输出5
● 获取数值单位中的单位:get-unit(5px)
● 获取封顶整型值:ceil(2.4)
● 获取底板整型值:floor(2.6)
● 获取浮点数的百分比:percentage(0.5)
● 四舍五入:round(1.67),输出2;规定精度:round(1.67,1),输出1.7
● 平方根:sqrt(25cm)
● 绝对值:abs(-5px)
● 是否是整数:isnumber()
● 是否是字符串:isstring()
● 是否是颜色: iscolor()
● 是否是CSS关键字:iskeyword
● 是否是url: isurl()
● 是否是像素:ispixeel()
● 是否加重字体:isem()
● 是否百分比:ispercentage()
● 创建颜色:rgb(90,129,32)
● 创建有透明度的颜色:rgba(90,129,32,0.5),css输出rgba(90, 129, 32, 0.5);argb(rgba(90, 23, 148, 0.5));输出#805a1794

更多参考: http://lesscss.org/functions/

@import

引入外部css文件与当前css文件合并。

@import "vendors/bootstrap/bootstrap.less";
@import "vendors/bootstrap/bootstrap.css";

LESS碎语的更多相关文章

  1. jQuery碎语(4) 实用函数

    6.实用函数 ● 修剪字符串 $('#id').val($.trim($('#someid').val())) ● 遍历集合 可能这样写: var anArray = ['one','two']; f ...

  2. jQuery碎语(3) 动画特效

    5.动画特效 ● 自制折叠内容块 内容块如下 <div class="module"> <div class="caption"> &l ...

  3. jQuery碎语(2) 事件

    4.事件 ● 通过方法名给元素绑定事件: $('li').click(function(event){}) ● 通过bind方法给元素绑定事件: $('li') .bind('click',funct ...

  4. jQuery碎语(1) 基础、选择要操作的元素、处理DOM元素

    1.基础 jquery对象集: $():jquery对象集合 获取jquery对象集中的元素: 使用索引获取包装器中的javascript元素:var temp = $('img[alt]')[0] ...

  5. 使用HTML5和CSS3碎语

    当我们使用HTML5, CSS3,甚至Bootstrap设计网站的时候,有些方面是必须考虑的,比如字体大小,标题大小,行间距,每行字数,字体,颜色,背景图片和文字的搭配,图标,留白和布局......所 ...

  6. Bootstrap碎语

    这里记录下某段时间Bootstrap的零散碎片. 1.有关Bootstrap的参考网站: ● 官方:http://getbootstrap.com/● 主题:http://bootswatch.com ...

  7. 抓包工具之—charles碎言碎语

    一.Charles常见使用场景: 1.Charles是跨平台的抓包工具,支持Windows,mac或Linux平台: 2.获取请求信息.测试接口时,若接口文档中的参数不清楚或没有接口文档时,可以通过抓 ...

  8. MS SQL 需要定期清理日志文件

    前言碎语 关于对SQL SERVER 日志文件管理方面了解不多的话,可以参考我的这篇博客文章“MS SQL 日志记录管理”,不过这篇文章只是介绍对SQL SERVER日志记录的深入认知了解,并没有提出 ...

  9. 迅雷9、迅雷极速版之迅雷P2P加速:流量吸血鬼?为什么你装了迅雷之后电脑会感觉很卡很卡?

    原文地址:http://www.whosmall.com/post/90 关闭极速版迅雷ThunderPlatform.exe进程 ThunderPlatform.exe目的:利用P2P技术进行用户间 ...

随机推荐

  1. Jquery ajax json 不执行success的原因 坑爹

    最近在看jQuery的API文档,在使用到jQuery的ajax时,如果指定了dataType为json,老是不执行success回调,而是执行了error回调函数,极度郁闷.后面改为1.2.6版本可 ...

  2. MVC layout 命名空间引用问题

    虽然用MVC做了很多项目,但是都是在别人搭好的框架上实现 今天碰到一个很简单的命名空间引用问题 如图所示,Scripts和Styles 都没有引用命名空间 解决方法一: 直接使用 System.Web ...

  3. TimedSupervisorTask

    啊啊啊 UnsupportedOperationException Lists.emptyLIst() . add (String[] ) 这他妈的不行.. .2017/09/13 16:42:16. ...

  4. 谈谈如何查看Android项目方法数

    我们都知道,Android App的方法数是有天花板的,在方法数达到65536时,就会出现打包异常,这个时候,我们需要去除一些不需要的三方工具包,或者采用多Dex技术分包,都能达到正常打包的效果. 可 ...

  5. tortoise svn 忽略bin、obj等文件夹

    项目空白处右击 =>TortoiseSVN => Properties => New => Other => svn:global-ignores value => ...

  6. 使用VSCode创建.NET Core 项目,添加类库间引用

    注:网络上搜索到的关于VsCode创建调试.Net Core 项目的文章都比较老旧,不能完全参考使用,根据网络文章.微软官方文档的指导下,学习并整理此文档,但也大体和文档学习路线相似,主要为记录学习过 ...

  7. getImplementationVersion-获取版本号

    在工作中会遇到这个方法的使用,就记录一下. 一:getImplementationVersion 1.  方法 java.lang.Package.getImplementationVersion() ...

  8. PHP函数之trigger_error

    在程序开发中,如果我们编码不规范,比如调用不存在的变量.语法错误.少了个逗号,这些都会引起系统报错并进行提示,但是今天,突然发现PHP还有这样一个函数,用于自动触发一个报错提示,并且会将报错信息写入p ...

  9. 【Vue实战之路】一、Vue-cli入门及Vue工程目录全解。

    全面的Vue-cli学习,这一篇就够了! 一.下载 使用vue-cli前,需先安装node.js,node的安装就不赘述,不过在此需要注意: 1. node版本需在4.x以上,首推6.x以上版本(no ...

  10. 解决:虚拟机能ping通主机,主机ping不通虚拟机

    问题:虚拟机能ping通主机,主机ping不通虚拟机 解决方法: 1. 使用桥接. 2. 关闭防火墙.