一、less预处理器

Less(LeanerStyle Sheets 的缩写)是一门 CSS扩展语言,也成为CSS预处理器。

1.插件安装

安装Easy LESS插件就能使写入的.less文件保存时自动生成.css文件

2.用法

1..less中的语法完全兼容css语法。

2.HTML引入时,需要引入的是CSS文件。

3.less自动生成为css文件后,不能直接修改生成的css文件,因为less文件的编译是时时的,刷新保存后,修改的css文件就不存在了。

3.less的嵌套

1.less的嵌套与HTML的结构一一对应。

//less
.father {
.son {
.sun {
font-size: 20px;
}
} .borther {
color: #09f;
}
} //less自动生成的css
.father .son .sun {
font-size: 20px;
}
.father .borther {
color: #09f;
} //html
<div class="father">
父亲
<div class="son">
儿子
<div class="sun">孙子</div>
</div>
<div class="borther">
兄弟
</div>

2.&代表less里的父元素自身。

3.父元素的内层选择中如果没有&符号,就是它的后代;有&符号,就是父元素自身。

// less中的嵌套与HTML结构一致
.father {
// 子代
>.son {
font-size: 50px; //伪元素
&::before {
content: "哈哈";
} .sun {
color: green;
font-size: 16px; // 鼠标经过
// &代表的是less中的上一级元素
&:hover {
color: #09f;
}
}
}
} // 交集
// &代表的是less中的上一级元素
div {
&.borther {
background-color: #f34;
}
}

4.less的变量

用@定义,谁要用谁就调用。

//定义变量
@color_f34: #f34;
@color_09f: #09f;
@font20: 20px;
@width: 100px; .father {
width: @width; .son {
color: @color_f34; .sun {
color: @color_09f;
}
} .borther {
font-size: @font20;
}
}

1.定义变量实际上就是将一个值储存在变量名中。

2.调用变量实际上就是使用变量中储存的值。

3.一个变量里面只能储存一个值。

4.变量名要见名知意,不能包含特殊字符,不能以数字开头。

5.less的运算

//定义变量
@color_f34: #f34;
@color_09f: #09f;
@font20: 20px;
@width: 100px; .father {
width: @width - 50;
// 运算符前后要用空格隔开,先乘除后加减
height: 100px + 200px - 100px * 2 / 4; .son {
color: @color_f34; .sun {
color: @color_09f;
border: 1px + 2 solid #222;
}
} .borther {
font-size: @font20 + 5;
}
}

6.导入less文件

在less文件中导入另一个less文件。

语法:

@import "文件名.less";

注意:@impot后面要有空格,语句结束要加分号喔~

7.less中的混合类

// 混合变量
// 无默认值
.square(@h; @w; @f) {
width: @w;
height: @h;
font-size: @f;
} .color(@bg; @fc) {
background-color: @bg;
color: @fc;
} // 有默认值
.square_2(@h: 200px; @w: 200px; @f: 18px) {
width: @w;
height: @h;
font-size: @f;
} .color_2(@bg: #90f; @fc: #fff) {
background-color: @bg;
color: @fc;
} //有默认值2
// 高默认是300,宽默认等于高
.square_3(@h: 300; @w: @h; ) {
width: @w;
height: @h;
} // 调用无默认值的混合变量必须要传入值
.box1 {
.color(#f34, #666);
.square(100px, 100px, 14px);
} .box2 {
.color(#09f, #ccc);
.square(100px, 100px, 20px);
} .box3 {
// 调用有默认值得混合变量时,可以不传入值,调用的就是默认值
.square_2();
.color_2();
} .box4 {
// 调用有默认 值得混合变量后,重新给他赋值,会覆盖掉默认值
.color_2(#666, #fff);
// 有默认值时,可以不全部赋值,没有赋值的就是默认值
.square_2(250px, 250px);
} .box4 {
.square_3();
}

利用less封装常用函数


// 清除浮动
.clearfix() {
&::after {
content: "";
display: block;
height: 0;
line-height: 0;
visibility: hidden;
clear: both;
}
}
// 定位居中
.center() {
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
} // flex居中
.center_f() {
display: flex;
justify-content: center;
align-items: center;
} /*单行溢出*/
.one-txt-cut() {
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
} /*多行溢出*/
.txt-cut(@l) {
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: @l;
-webkit-box-orient: vertical;
}

08-less预处理器的更多相关文章

  1. sass和less,优秀的前端样式预处理器

    身为切图界的一员,或者说在前端界打滚了一段日子的你.会慢慢地发现.如今的css编写已经不能满足自己的效率. 假设有更强大的框架,让你的css更灵活和更easy复用和维护,那该多好啊.非常明显,这个早已 ...

  2. 【转载】C/C++预处理器

    转自:http://www.cnblogs.com/lidabo/archive/2012/08/27/2658909.html C/C++编译系统编译程序的过程为预处理.编译.链接.预处理器是在程序 ...

  3. 前端CSS预处理器Sass

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

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

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

  5. C和指针 第十四章 预处理器 头文件

    编写一个C程序,第一个步骤称为预处理,预处理在代码编译之前,进行一些文本性质的操作,删除注释.插入被include的文件.定义替换由#define定义的符号,以及确定代码的部分内容是否应该按照条件编译 ...

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

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

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

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

  8. C#预处理器指令 ,你造吗??? (●'◡'●)

    什么是c#预处理指令?? 用于在 C# 源代码中嵌入的编译器命令. C#预处理器指令有哪些?? ↓↓↓这些就是预处理器指令啦 下面我们一一道来(●'◡'●) 1.#if ,#elif,#else,en ...

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

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

  10. Harp – 内置常用预处理器的静态 Web 服务器

    Harp 是一个基于 Node.js 平台的静态 Web 服务器,内置流行的预处理器,支持把 Jade, Markdown, EJS, Less, Stylus, Sass, and CoffeeSc ...

随机推荐

  1. Redis 的键命令、HyperLogLog 命令、脚本命令、连接命令、服务器命令

    Redis 的键命令.HyperLogLog 命令.脚本命令.连接命令.服务器命令 Redis 的键命令 Redis 的键命令主要用于管理 Redis 的键,如删除键.查询键.修改键及设置某个键等. ...

  2. List集合概述和特点

    List集合概述 有序集合(也称序列)用户可以精确控制列表的每一个元素的位置插入,用户可以通过整数索引访问元素,并搜索列表中的元素 与set集合不同,列表通常允许重复的元素 List集合的特点 有序: ...

  3. css第二波

    目录 css第二波 盒子模型 浮动 三种取值 清除浮动 浮动页面布局 溢出 定位 相对定位 relative(相对定位) 绝对定位 absolute(绝对定位) 固定定位 fixed(固定) 模糊框 ...

  4. 李瑞红 201771010111《面向对象程序设计(java)》第一周学习总结

    李瑞红 201771010111<面向对象程序设计(java)>第一周学习总结 第一部分:课程准备部分 填写课程学习 平台注册账号, 平台名称 注册账号 博客园:www.cnblogs.c ...

  5. 洛谷 P5221 Product 题解

    原题链接 庆祝!第二道数论紫题. 推式子真是太有趣了! \[\prod_{i=1}^n \prod_{j=1}^n \frac{\operatorname{lcm}(i,j)}{\gcd(i,j)} ...

  6. Hive面试准备

    Hive与HBase的区别Hive架构原理Hive的数据模型及各模块的应用场景Hive支持的文件格式和压缩格式及各自特点Hive内外表的区分方法及内外部差异Hive视图如何创建.特点及应用场景Hive ...

  7. effective-java学习笔记---使用接口模拟可扩展的枚举38

    枚举类型( BasicOperation )不可扩展,但接口类型( Operation )是可以扩展的,并且它是用于表示 API 中的操作的接口类型. // Emulated extensible e ...

  8. 意外发现PHP另一个显示转换类型 binary

    竟然不知道除了(string)$a之外,还有(binary)$a知道unset可以不加括号,但不知道还有这种写法(unset) 请看lex文件(php-7.1.8) <ST_IN_SCRIPTI ...

  9. iOS isa 和 Class

    一.Runtime 简介 Runtime 又叫运行时,是一套底层的 C 语言 API,是 iOS 系统的核心之一.开发者在编码过程中,可以给任意一个对象发送消息,在编译阶段只是确定了要向接收者发送这条 ...

  10. Java 中的递归

    递归 递归 一种通过调用某个方法来描述需要重复进行的操作.该方法的特点就是可以自己调用自己. 案例一 排队的问题 在生活中,我们经常需要排队.在排队中,我们怎么才能知道自己所排在第几位呢? 我们也许会 ...