如何使用less(变量,混合,匹配,运算,嵌套...)
如何使用less及一些常用的(变量,混合,匹配,运算,嵌套...)
less的介绍及编译工具
什么是less
1.LESSCSS是一种动态样式语言,属于CSS预处理语言的一种,它使用类似CSS的语法,为CSS的赋予了动态语言的特性,如变量、继承、运算、函数等,更方便CSS的编写和维护。
LESSCSS可以在多种语言、环境中使用,包括浏览器端、桌面客户端、服务端。
less的编译工具
Koala 考拉 --编译的时候如果没有建CSS文件夹 Koala会自动给你生成一个
如何设置语言

如何编译
-
让webstorm支持less编译:
- 安装node.js --- 这是一个包管理工具 以后还会用到
- WIN+R
- 输入 npm install less
.....
less的语法
Ps:下面的知识点会用到上面的知识点 (比如说在混合中会用到变量 加深印象_)
注释
- // 只在less中显示
- /**/ 会在编译好的css文件中显示
变量
- 定义变量用@
- less中的写法
@ly_width:100px;
.box {
width:@ly_width;
}
- 编译后在css中显示的是
.box {
width:100px;
}
- 定义变量用@
混合
- 不带参数的混合
- 先上less中的代码 如果想在.one中应用.border的样式怎么办?
@ly_width:100px;
@ly_height:200px;
@ly_color:green;
.border {
border:1px solid red;
}
.one {
width:@ly_width;
height:@ly_height;
background-color:@ly_color;
}
- 写成下面的样子
@ly_width:100px;
@ly_height:200px;
@ly_color:green;
.border {
border:1px solid red;
}
.one {
width:@ly_width;
height:@ly_height;
background-color:@ly_color;
.border;
}
- 编译后在css中显示的是
.border {
border:1px solid red;
}
.one {
width: 100px;
height: 200px;
background-color: #008000;
border: 1px solid red;
}
```
- 带参数的混合---不带默认值 (可以传多个参数,以逗号或者分号隔开,推荐用分号 下面以一个参数为例)
- less中的写法
@ly_width:100px;
@ly_height:200px;
@ly_color:green;
.border(@border_width) {
border:@border_width solid red;
}
.one {
width:@ly_width;
height:@ly_height;
background-color:@ly_color;
.border(1px);
}
- 编译后在css中显示的是
.one {
width: 100px;
height: 200px;
background-color: #008000;
border: 1px solid #ff0000;
}
- 带参数的混合---带默认值 (可以传多个参数 下面以一个参数为例)
- less中的写法
@ly_width:100px;
@ly_height:200px;
@ly_color:green;
.border(@border_width:3px;) {
border:@border_width solid red;
}
.one {
width:@ly_width;
height:@ly_height;
background-color:@ly_color;
.border();
}
- 编译后在css中显示的是
.one {
width: 100px;
height: 200px;
background-color: #008000;
border: 3px solid #ff0000;
}
- 在解决css3兼容性时候经常用到
- 解决border-radius兼容
.border_radius (@radius: 5px) {
-webkit-border-radius: @radius;
-moz-border-radius: @radius;
-ms-border-radius: @radius;
-o-border-radius: @radius;
border-radius: @radius;
}
- 不带参数的混合
匹配模式
- 可以理解成if 和上面的混合有些相似
- less中的写法
//定义上,下,左,右边框的样式
.border(top;@border_width:5px;@border_color:red){
border-top:@border_width solid @border_color;
}
.border(bottom;@border_width:5px;@border_color:red){
border-bottom:@border_width solid @border_color;
}
.border(left;@border_width:5px;@border_color:red){
border-left:@border_width solid @border_color;
}
.border(right;@border_width:5px;@border_color:red){
border-right:@border_width solid @border_color;
}
//如果想写通用的样式 可以在下面的代码中写 格式是固定的
.border(@_,@border_width:5px;@border_color:red){
border-color:yellow;
}
.border_use1 {
//选择和if差不多 如果是left就调用上面对应的
.border(left);
}
.border_use2 {
//选择和if差不多 如果是right就调用上面对应的
.border(right);
}
- 编译后在css中显示的是
.border_use1 {
border-left:5px solid #ff0000;
border-color:yellow;
}
.border_use2 {
border-right:5px solid #ff0000;
border-color:yellow;
}
- 可以理解成if 和上面的混合有些相似
运算
- 运算提供了加,减,乘,除操作,还可以做属性值和颜色的运算...
- less中的写法
@ly_width:100px;
.one {
width:@ly_widht + 100;
}
- 编译后在css中显示的是
.one {
width:200px;
}
- 运算提供了加,减,乘,除操作,还可以做属性值和颜色的运算...
嵌套
- 可以在一个选择器中嵌套另一个选择器,代码看起来层次分明,提高代码可维护性
- html结构
<div class="one">
<div class="two"></div>
</div>
- less中的写法
@ly_width:100px;
@ly_height:200px;
@ly_color:red;
.one {
width:@ly_width;
height:@ly_height;
background-color:@ly_color;
.two {
background-color: green;
}
}
- 编译后在css中显示的是
.one {
width: 100px;
height: 200px;
background-color: #ff0000;
}
.one .two {
background-color: green;
}
- 可以在一个选择器中嵌套另一个选择器,代码看起来层次分明,提高代码可维护性
@arguments变量
- 可以包含所有的变量,将变量一起处理
- less中的写法
//和前面提到的混合一起举个栗子
.border(@border_width;@border_style;@border_color){
border:@arguments;
}
.one {
.border(1px;solid;red);
}
- 编译后在css中显示的是
.one {
border:1px solid #ff0000;
}
- 可以包含所有的变量,将变量一起处理
如何使用less(变量,混合,匹配,运算,嵌套...)的更多相关文章
- 玩转变量、环境变量以及数学运算(shell)
变量和环境变量 var=value 给变量赋值,输出语句:$ echo $var或者是$ echo ${var},记住中间有个空格 例如:name="coffee" age ...
- [Shell]Bash变量:数值运算及运算符
------------------------------------------------------------------------------------------------- Sh ...
- python中的变量和算数运算
先说下变量的作用: 用来保存数据,为什么要保存? 后面要使用. 变量的概念: 变量就是用来存储一些信息,供程序以后调用或者操作修改.变量为标记数据提供了一种描述性的名字,以便我们的程序可以被程序的阅读 ...
- C结构体变量2种运算(比如链表的结点)(区别与java)
a结构体变量,只能做两种运算, 整体引用(赋值,参数传递) 或访问成员(点运算—地址方式简化,地址方式)(见最后的图片) case万: 结论:java里面的class Node : Node p; p ...
- linux学习(八)Shell中变量的数学运算
目录 常见的运算符 expr命令 @(Shell中变量的数学运算) 常见的运算符 环境变量 说明 + 加 - 减 * 乘 / 除 % 取模 因为Shell中将*作为通配符使用, expr命令 expr ...
- UTF-8和UTF-8无BOM,一个会导致文件中中文变量无法匹配的bug
昨晚用dom4j中的selectSingleNode解析xml,匹配节点. 发现匹配不到,但是确实存在该节点 将regex改为regex1后则可以匹配,也就是说文件中的"阿里旺旺" ...
- saltstack之混合匹配
需要-C参数: salt -C ## 使用grains属性来匹配 [root@hadoop0 pillar]# salt -C 'G@os:Ubuntu' test.ping uadoop1: Tru ...
- 【Linux】通过传入变量进行数学运算
一个简单的sum求和 #! /bin/bash ## For get the sum of tow numbers ## Writen by Qinys ## Date:2018-06-26 a=1 ...
- 第二周Python笔记之 变量的三元运算
如果变量a小于b,则d的值取a变量的值,否则取c变量的值
随机推荐
- 给定一个 hashMap 最终输出最大值的键
/** * * 类 描 述:机试题: 给定一个 hashMap 最终输出最大值的键 * 作 者: 赵 鹏 * 时 间:2017年7月4日 下午6:51:06 */ public class Test ...
- 关于Laravel中使用response()方法调用json()返回数据unicode编码转换的问题解决
在网上找了好久没有找到,之后一步一步测试,发现了Laravel还是很强大的,解决方案如下: public function response(){ // 返回json数据 $data = [ 'err ...
- codeforces586B
Laurenty and Shop CodeForces - 586B A little boy Laurenty has been playing his favourite game Nota f ...
- BZOJ4385[POI2015]Wilcze doły——单调队列+双指针
题目描述 给定一个长度为n的序列,你有一次机会选中一段连续的长度不超过d的区间,将里面所有数字全部修改为0.请找到最长的一段连续区间,使得该区间内所有数字之和不超过p. 输入 第一行包含三个整数n,p ...
- Sublime Text3配置及控制台乱码[cmd杀死进程乱码/编译文件乱码]解决方法
[NodeJs] 1.安装 http://nodejs.cn/download/ 2.安装过程省略(因为已经安装过了) 和平时安装软件没区别 3.配置环境 计算机--->属性-->高级系统 ...
- 【Linux】自动执行Mysql常用命令脚本
wamp环境下,我可以手敲一遍,但是lamp环境下我绝对不会手敲一遍 好吧~写脚本的确也是一遍~~~~(>_<)~~~~ 函数和后面的触发器中文档上局部是有错误的,所以大家不要一味的相信文 ...
- C/C++ 各种进制的表示方法/ 进制前缀
C/C++ 各种进制的表示方法/ 进制前缀 来源 https://blog.csdn.net/qq_38282836/article/details/81784112 在C/C++ 中天然的支持除10 ...
- python3实现感知器,简单神经网络
三个输入,四个输出,四组数据 对numpy和矩阵运算还不是太熟悉,可能写的复杂了点,矩阵数组来回转换 代码请查看码云 运行结果片段
- MT【222】几道自招面试真题
1.(2015东南大学)2分钟找杯子,4分钟找茶叶,7分钟烧水,爸爸花13分钟给家访的老师泡茶,请问你怎么看? 2.(2014复旦大学)共有5顶帽子,三个黑的两个白的,三个人排成一排,并让这三个人每个 ...
- 【CodeForces 624D/623B】Array GCD
题 You are given array ai of length n. You may consecutively apply two operations to this array: remo ...