Css预处理器---Less(二)
三、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(二)的更多相关文章
- 关于前端CSS预处理器Sass的小知识!
前面的话 "CSS预处理器"(css preprocessor)的基本思想是,用一种专门的编程语言,进行网页样式设计,然后再编译成正常的CSS文件.SASS是一种CSS的开发工 ...
- Myth – 支持变量和数学函数的 CSS 预处理器
Myth 是一个预处理器,有点类似于 CSS polyfill .Myth 让你写纯粹的 CSS,同时还让你可以使用类似 LESS 和 Sass 的工具.您仍然可以使用变量和数学函数,就像你在其它预处 ...
- Sass:一种CSS预处理器语言
http://sass-lang.com/ Sass是一种CSS预处理器语言,通过编程方式生成CSS代码.因为可编程,所以操控灵活性自由度高,方便实现一些直接编写CSS代码较困难的代码. 同时,因为S ...
- 比较三个 CSS 预处理器:Sass、LESS 和 Stylus(上)
前沿 : 第一次写不够成熟,可能描述有所错误,还请大家修改指正,我会对已完成的文章进行修改. 一.什么是CSS预处理器 CSS预处理器定义了一种新的语言,基本的思想是用一种专门的编程语言,开发者只需要 ...
- CSS预处理器—Sass、LESS和Stylus
http://www.w3cplus.com/css/css-preprocessor-sass-vs-less-stylus-2.html 一.什么是CSS预处器 CSS预处理器定义了一种新的语言, ...
- css预处理器(sass)
学过CSS的人都知道,它不是一种编程语言.你可以用它开发网页样式,但是没法用它编程.也就是说,CSS基本上是设计师的工具,不是程序员的工具.在程序员眼里,CSS是一件很麻烦的东西.它没有变量,也没有条 ...
- 前端CSS预处理器Sass
前面的话 "CSS预处理器"(css preprocessor)的基本思想是,用一种专门的编程语言,进行网页样式设计,然后再编译成正常的CSS文件.SASS是一种CSS的开发工 ...
- css预处理器sass使用教程(多图预警)
css预处理器赋予了css动态语言的特性,如变量.函数.运算.继承.嵌套等,有助于更好地组织管理样式文件,以及更高效地开发项目.css预处理器可以更方便的维护和管理css代码,让整个网页变得更加灵活可 ...
- CSS预处理器Sass、LESS 和 Stylus
CSS 预处理器技术已经非常的成熟,而且也涌现出了越来越多的 CSS 的预处理器框架.本文向你介绍使用最为普遍的三款 CSS 预处理器框架,分别是 Sass.Less CSS.Stylus. 首先我们 ...
随机推荐
- 对内存分配的理解 自动变量 局部变量 临时变量 外部变量 字符串长度 C语言可以看成由一些列的外部对象构成
Status ListInsert_Sq(SqList *L,int i,LElemType_Sq e) { LElemType_Sq *newbase; LElemType_Sq *p,*q; if ...
- 数据在内存中的存储方式( Big Endian和Little Endian的区别 )(x86系列则采用little endian方式存储数据)
https://www.cnblogs.com/renyuan/archive/2013/05/26/3099766.html 1.故事的起源 “endian”这个词出自<格列佛游记>.小 ...
- >>>>>>>> [ovs][libvirt] virt-xml ovs-vsctl
查看可用的参数: [root@vrouter1 tong]# virt-xml --add-device --network=? |grep source source source_mode sou ...
- elastic客户端TransportClient的使用
关于TransportClient,elastic计划在Elasticsearch 7.0中弃用TransportClient,并在8.0中完全删除它.后面,应该使用Java高级REST客户端,它执行 ...
- Python创建第一个django应用
在helloworld工程的基础上,我们准备创建第一个基于web的django应用,把这个应用名字命名为Guest 1.首先,是如何创建这个应用包,当然第一选择我们可以进入到cmd中,执行如下命令 ...
- 洛谷P3234 抄卡组 [HNOI2014] 字符串hash
正解:字符串hash 解题报告: 传送门! 字符串hash是字符串匹配中很常见的一个方法,原理也很好懂,这里就不做太多阐述辣有时间放到hash笔记里面去QAQ 题意不说了挺好理解的,自带一句话概括好评 ...
- 那些年读过的书《Java并发编程实战》二、如何设计线程安全类
1.设计线程安全类的过程 设计线程安全类的过程就是设计对象状态并发访问下线程间的协同机制(在不破坏对象状态变量的不变性条件的前提下). (1)构建线程安全类的三个基本要素: 1)找出构成对象状态的所有 ...
- django基础-01:软件框架,MVC框架,MVT
1. 软件框架 一个公司是由公司中的各部部门来组成的,每一个部门拥有特定的职能,部门与部门之间通过相互的配合来完成让公司运转起来. 一个软件框架是由其中各个软件模块组成的,每一个模块都有特定的功能,模 ...
- MySQL Sandbox安装使用
前言 经常看见新同学对于安装MySQL十分惧怕,这是因为不熟悉的缘故,确实源码编译比较麻烦,缺少各种依赖包也够折腾的.当然还有预编译包,但是对于新同学来说好像都挺麻烦的.当然有yum安装,但是我们需要 ...
- 微信小程序使用阿里图标-iconfont
步骤一:下载项目图标 步骤二:解压文件,重命名 iconfont.css为 iconfont.wxss ,并复制 到项目 static文件夹 icon文件夹下 ...