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. 首先我们 ...
随机推荐
- vue 错误分析
1 点击事件发生的错误 原因是,重复触发事件函数导致 改为不一样的名字即可 2 提示 : “ vuex] Expects string as the type, but found undef ...
- JQuery中数组的创建与使用
一.创建数组的方式: 1.定义并赋值 var str = ['java', 'php', 'c++', 'c#', 'perl', 'vb', 'html', 'css']; 2.用{}定义后赋值: ...
- winform 科学计数法转为小数
先强制转换为decimal. 例如: double xyTolerance = 0.000000008983001; txtXYTolerance.Text = ((decimal)xyToleran ...
- 清理solaris /var/mail/下的邮件文件
我服务器上/var/mail下的各个用户的邮件日志非常大,占用空间已经有95%了,我想清除掉,是否可以直接删除/var/mail的各个日志??删除后系统是否可以自动生成? 应该可以直接删除/var/m ...
- LeetCode 476 Number Complement 解题报告
题目要求 Given a positive integer, output its complement number. The complement strategy is to flip the ...
- (转载)centos7启用端口
转载:原文地址:https://www.cnblogs.com/moxiaoan/p/5683743.html 1.firewalld的基本使用 启动: systemctl start firew ...
- scrapy windows下出现importError:No module named 'win32api'
scrapy windows下出现importError:No module named 'win32api'需安装 pip install pypiwin32
- 安装sqlserver2008中出现的问题小结
安装完sqlserver2008时报了几个错,但是好歹装上了,但是我想使用sa用户登录,给我出现了这么一个错 标题: 连接到服务器------------------------------ 无法连接 ...
- 第一章:HTML5的基础
HTML5基础 1.DoctYpe声明 <!DCTYPE html>必须放在第一行. <title> <title> 百度</title> <me ...
- finecms栏目文章页seo设置
finecms栏目页和文章页默认的标题是页面title_二级栏目title_一级栏目title_网站名称(比如:finecms怎么设置标题_finecms二次开发_finecms_ytkah博客),如 ...