三、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. MySQL之更新型触发器

    DELIMITER || CREATE TRIGGER tri_video_class AFTER UPDATE ON 数据库名.表名称 FOR EACH ROW begin IF((old.stat ...

  2. ASP.NET MVC导出excel npoi

    使用npoi组件 前端代码: @Html.ActionLink("导出Excel", "ExportWarehouseInOutDetailTable", ne ...

  3. AndroidStudio_ListView

    在这里梳理一下ListView的用法: 1.建立一个activity,例如建立一个ListViewActivity,这时将生成两个文件:ListViewActivity.java和activity_l ...

  4. PSU/OPATCH/OJVM下载页面及安装方式(最实用版)

    中文版:数据库 PSU,SPU(CPU),Bundle Patches 和 Patchsets 补丁号码快速参考 (文档 ID 1922396.1) Download Reference for Or ...

  5. 《HTTP - 概述》

    晚上听着 木小雅<可能否>,让我这暴躁的一天得以回复一下. 学习是长久之事,不能急躁.应该系统的去学习一些东西. 1:HTTP 最严谨的叫法应该是 超文本转移协议,但大家一般都叫做 超文本 ...

  6. 20165336 2017-2018-2 《Java程序设计》第5周学习总结

    20165336 2017-2018-2 <Java程序设计>第5周学习总结 教材学习内容总结 内部类的类体中不可以声明类变量和类方法. 内部类仅供他的外嵌类使用,其他类不可以用某个类的内 ...

  7. Appium环境配置(一)

    一:环境准备(Windows 7版本 64位系统) 1.jdk1.6.0 (64位) 2.android-sdk 3.appium 4.Node.js:node-v8.11.1 5.Appium-Py ...

  8. Java设计模式之模板模式及使用场景

    模板模式,顾名思义,就是通过模板拓印的方式. 定义模板,就是定义框架.结构.原型.定义一个我们共同遵守的约定. 定义了模板,我们的剩余工作就是对其进行充实.丰润,完善它的不足之处. 定义模板采用抽象类 ...

  9. Matlab中导入文本文件中的数据 矩阵合并 以及C++中删除文件操作

    今天用到了Matlab读取文本文件中按照一定格式存储好的数据,然后进行后续的分析计算等,因此涉及到Matlab的文件读取,记录在这里,供以后查阅: fid = fopen('train.set', ' ...

  10. python练习题-day2

    1.判断下列逻辑语句的True,False 1)1 > 1 or 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6 True ...