三、Less语法

  (1)变量

 //less代码
@nice-blue : #5B83AD;
@light-blue : @nice-blue + #111;
#header {
color : @light-blue;
} //css输出
#header {
color : #6c94be;
} //将变量名定义为变量
@fnord : "I am fnord";
@var : 'fnord';
content : @@var
//css输出
content : "I am fnord";

  (2)混合

    :定义的样式.bordered可以在其他样式内调用

 //less代码
.bordered {
border-top: 1px dotted black;
border-bottom: 2px solid black;
}
#menu a {
color: #111;
.bordered;
} //css输出
.bordered {
border-top: 1px dotted black;
border-bottom: 2px solid black;
}
#menu a {
color: #111;
border-top: 1px dotted black;
border-bottom: 2px solid black;
}

  (3)带参数混合

    :以下代码中在.border-radius样式传入参数@radius定义border-radius属性,在#myDiv样式中调用该样式

 //less代码
.border-radius(@radius) {
border-radius: @radius;
-webkit-moz-border-radius: @radius;
-moz-moz-border-radius: @radius;
}
#myDiv {
.border-radius(4px)
}
.button {
.border-radius(6px)
} //css输出
#myDiv {
border-radius: 4px;
-webkit-moz-border-radius: 4px;
-moz-moz-border-radius: 4px;
}
.button {
border-radius: 6px;
-webkit-moz-border-radius: 6px;
-moz-moz-border-radius: 6px;
}

  :在参数中设定默认值@radius:5px

 //less代码
.border-radius(@radius : 5px) {
border-radius: @radius;
}
#header {
.border-radius;
}
//css输出
#header {
border-radius: 5px;
}

  :@arguments变量表示多个参数

 //less代码
.box-shadow(@x:0, @y:0, @blur:1px, @color:#000) {
-webkit-box-shadow: @arguments;
-moz-webkit-box-shadow: @arguments;
box-shadow: @arguments;
} #header {
.border-radius;
.box-shadow(2px, 5px)
} //css输出
#header {
-webkit-box-shadow: 2px 5px 1px #000000;
-moz-webkit-box-shadow: 2px 5px 1px #000000;
box-shadow: 2px 5px 1px #000000;
}

  (4)混合模式

 //less代码
@test-width : 300px;
.box{
width: @test-width;
height: @test-width;
background-color: yellow;
.border;
}
.border {
border: 5px solid pink;
} //css输出
.box {
width: 300px;
height: 300px;
background-color: yellow;
border: 5px solid pink;
}
.border {
border: 5px solid pink;
}
 //混合模式带参数
.border(@test-width) {
border: 2px 3px 4px @test-width;
}
.box {
margin: 10px;
.border(10px)
} //css输出
.box {
margin: 10px;
border: 2px 3px 4px 10px;
}

  (5)匹配模式:指定样式.triangle传入参数,所得结果嵌套到pox样式中

 //匹配模式less代码
.triangle(top,@w:5px,@c:#ccc) {
border-width: @w;
border-color: transparent transparent @c transparent;
border-style: dashed dashed solid dashed;
}
.triangle(bottom,@w:5px,@c:#ccc) {
border-width: @w;
border-color: @c transparent transparent transparent;
border-style: solid dashed dashed dashed;
}
.triangle(left,@w:5px,@c:#ccc) {
border-width: @w;
border-color: transparent @c transparent transparent;
border-style: dashed solid dashed dashed;
}
.triangle(right,@w:5px,@c:#ccc) {
border-width: @w;
border-color: transparent transparent transparent @c;
border-style: dashed dashed dashed solid;
}
// @_表示引用的样式必须包含该样式
.triangle(@_,@w:5px,@c:#ccc){
width: 0px;
height: 0px;
overflow: hidden;
}
.pox1{
.triangle(top,50px,blue)
}
.pox2{
.triangle(right,50px,red)
}
.pox3{
.triangle(bottom,50px,yellow)
}
.pox4{
.triangle(left,50px,green)
} //css输出
.pox1 {
border-width: 50px;
border-color: transparent transparent #0000ff transparent;
border-style: dashed dashed solid dashed;
width: 0px;
height: 0px;
overflow: hidden;
}
.pox2 {
border-width: 50px;
border-color: transparent transparent transparent #ff0000;
border-style: dashed dashed dashed solid;
width: 0px;
height: 0px;
overflow: hidden;
}
.pox3 {
border-width: 50px;
border-color: #ffff00 transparent transparent transparent;
border-style: solid dashed dashed dashed;
width: 0px;
height: 0px;
overflow: hidden;
}
.pox4 {
border-width: 50px;
border-color: transparent #008000 transparent transparent;
border-style: dashed solid dashed dashed;
width: 0px;
height: 0px;
overflow: hidden;
}

  (6)嵌套

  :父级元素内可以直接嵌套子级元素,&后面一般跟伪类选择器如(:hover,:focus)等

 //less代码
#header {
width: 100px;
h3 {
color: #ccc;
a {
font-size: 20px;
&:hover {
text-decoration: none;
}
} }
} //css输出
#header {
width: 100px;
}
#header h3 {
color: #ccc;
}
#header h3 a {
font-size: 20px;
}
#header h3 a:hover {
text-decoration: none;
}

  (7)运算

  :同类属性之间可以使用+-*/进行数学运算

 //less代码
@base : 5%;
@filter : @base * 2;
@other : @base + @filter;
@base-color : #ccc;
.test {
color: #888 / 4;
background-color: @base-color + #111;
height: 100% / 2 + @filter;
} //css输出
.test {
color: #222222;
background-color: #dddddd;
height: 60%;
}

Css预处理器---Less(二)的更多相关文章

  1. 关于前端CSS预处理器Sass的小知识!

    前面的话   "CSS预处理器"(css preprocessor)的基本思想是,用一种专门的编程语言,进行网页样式设计,然后再编译成正常的CSS文件.SASS是一种CSS的开发工 ...

  2. Myth – 支持变量和数学函数的 CSS 预处理器

    Myth 是一个预处理器,有点类似于 CSS polyfill .Myth 让你写纯粹的 CSS,同时还让你可以使用类似 LESS 和 Sass 的工具.您仍然可以使用变量和数学函数,就像你在其它预处 ...

  3. Sass:一种CSS预处理器语言

    http://sass-lang.com/ Sass是一种CSS预处理器语言,通过编程方式生成CSS代码.因为可编程,所以操控灵活性自由度高,方便实现一些直接编写CSS代码较困难的代码. 同时,因为S ...

  4. 比较三个 CSS 预处理器:Sass、LESS 和 Stylus(上)

    前沿 : 第一次写不够成熟,可能描述有所错误,还请大家修改指正,我会对已完成的文章进行修改. 一.什么是CSS预处理器 CSS预处理器定义了一种新的语言,基本的思想是用一种专门的编程语言,开发者只需要 ...

  5. CSS预处理器—Sass、LESS和Stylus

    http://www.w3cplus.com/css/css-preprocessor-sass-vs-less-stylus-2.html 一.什么是CSS预处器 CSS预处理器定义了一种新的语言, ...

  6. css预处理器(sass)

    学过CSS的人都知道,它不是一种编程语言.你可以用它开发网页样式,但是没法用它编程.也就是说,CSS基本上是设计师的工具,不是程序员的工具.在程序员眼里,CSS是一件很麻烦的东西.它没有变量,也没有条 ...

  7. 前端CSS预处理器Sass

    前面的话   "CSS预处理器"(css preprocessor)的基本思想是,用一种专门的编程语言,进行网页样式设计,然后再编译成正常的CSS文件.SASS是一种CSS的开发工 ...

  8. css预处理器sass使用教程(多图预警)

    css预处理器赋予了css动态语言的特性,如变量.函数.运算.继承.嵌套等,有助于更好地组织管理样式文件,以及更高效地开发项目.css预处理器可以更方便的维护和管理css代码,让整个网页变得更加灵活可 ...

  9. CSS预处理器Sass、LESS 和 Stylus

    CSS 预处理器技术已经非常的成熟,而且也涌现出了越来越多的 CSS 的预处理器框架.本文向你介绍使用最为普遍的三款 CSS 预处理器框架,分别是 Sass.Less CSS.Stylus. 首先我们 ...

随机推荐

  1. Srt字幕文件解析

    // // ViewController.m // 字幕解析 // // Created by admin on 2018/8/30. // Copyright © 2018年 admin. All ...

  2. [centos][ntp][administrator] chrony ntp

    以下内容,适用于 CentOS 7 (systemd 体系) 一. 首先,确认你是否启用了 ntp 服务: [root@nlb2-liantiao ~]# timedatectl Local time ...

  3. Flash and Scalform CLIK

    Flash shift + f7 打开组件检查面板 Scaleform As bit define bool                Unrolling       :1;    // indi ...

  4. isprime_判断质数

    判断质数的方法有很多,首先是最简单的试除法,判断n以内的质数的话时间复杂度为n*sqrt(n)当然是很慢的了 下面提供三种判断质数的方法: 首先是跑5051ms的这个是埃拉托斯特尼筛法 且不加优化 核 ...

  5. 转:ORACLE 中ROWNUM用法总结!

    oracle 分页查询语句:select * from (select u.*,rownum r from (select * from userifno) u where rownum<大值) ...

  6. Android SDK 环境变量

    系统变量 PATH中加入 C:\Program Files (x86)\Android\android-sdk\platform-tools 和 C:\Program Files (x86)\Andr ...

  7. 我的grunt学习笔记

    什么是grunt?  Grunt是一个JavaScript任务运行器,用于自动执行频繁任务(如压缩,编译,单元测试)的工具.它使用命令行界面来运行在文件中定义的自定义任务(这个文件称为Gruntfil ...

  8. Java Web----------response&&request

    1.response 代表响应, 可以理解为一个空的箱子,我们在里面填入要发送到浏览器的内容. 服务器会把这些内容组装成http响应. 1.1 响应首行 协议/版本号 状态码 状态码描述 添加状态码 ...

  9. 12306微信小程序上线 提供余票查询暂不支持购票

    12306微信小程序正式上线,如图所示,目前小程序提供余票查询.时刻表查询和正晚点查询三大功能,用户可在这里随时查看剩余车票以及列车时刻表.而且小程序支持用户添加行程,方便出行. 目前这款小程序还不支 ...

  10. dxRangeTrackBar使用教程

    Properties: Max:最大值 Min:最小值 Frequency:设置刻度值多大值显示PageSize:选择时跳动的区域大小 SelectionColor:选择区域颜色 ShowSelect ...