Less中Css预处理器
Less.js
安装
npm install -g less
变量
basic
变量采用@
进行变量定义。变量可以直接参加运算。
@width:100px;
.variables{
width:@width;
height: @width+50px; (变量运算之后,不加px单位也可)
}
作用域 scope
Less 中的作用域与 CSS 中的作用域非常类似。首先在本地查找变量和混合(mixins),如果找不到,则从“父”级作用域继承。
<div id="nesting">
<div>
<div />
</div>
</div>
#nesting{
width:200px;
height:300px;
background-color: @color;
@color:#66aa44; //绿色
div{
width: 200px;
height: 150px;
background-color:#ff0000;
@color:#7a6ff4;//蓝紫色
div{
width: 200px;
height: 75px;
background-color:@color;
}
}
}
第三个div的background-color
是使用的变量@color
,但是本地并没有这个变量定义,便在上一个父级寻找此变量。在上一级寻找到变量之后,即使再上一级也定义过此变量,也不采用。
Mixins
basic
Less.js的Mixin
是直接在less代码里直接加入选择器和()
。使用id选择器#
作为被mix的代码也可以。
.a{
color:#000000;
background-color: shade((#ff0000),50%) ;//棕色
border:3px solid black
}
.b{
.a(); /* #a()也可行,如果定义了 */
background-color: #00ff00;//绿色
}
如果被mix的代码重写了mix代码中的某一个属性,重写代码生效。(棕色变为了绿色)
bundle
出于方便的原因,可以将mix代码集合到bundle里然后进行分发。
<div class="div-style" id="nesting" />
#bundle(){
.a{
color:#000000;
background-color: #ff9843 ;
border:3px solid black
}
.blank{
color:#883743
}
}
.div-style{
#bundle.a();
}
#bundle
非关键字,可以使用其他变量代替
#test(){
.a{
color:#000000;
background-color: #ff9987 ;
border:3px solid black
}
}
.div-style{
#test.a();
}
映射 Maps
将混合(mixins)和规则集(rulesets)作为一组值的映射(map)使用。
我的理解:将相同属性的变量集合到一起,需要使用时再进行分发。
#colors(){
first:#a9ff62;
secondary:#f7f4a3
};
#test(){
.a{
color:#000000;
background-color:#colors[first] ;
border:3px solid black
}
}
.div-style{
#test.a();
}
嵌套
嵌套的规则和Js的规则几乎一致。
<div id="nesting">
<div>
<div />
</div>
</div>
#nesting{
width:200px;
height:300px;
background-color: @color;
@color:#66aa44; //绿色
div{
width: 200px;
height: 150px;
background-color:#ff0000;
@color:#7a6ff4;//蓝紫色
div{
width: 200px;
height: 75px;
background-color:@color;
}
}
}
也可以使用&:伪元素
的方式,嵌套伪元素结构。
函数
函数作为less一个非常重要的功能,能够帮助js处理一些非逻辑层面的计算。
.a{
color:#000000;
background-color: shade((#ff0000),50%) ;
border:3px solid black
}
颜色处理函数shade()
,可以将被处理颜色(代码里是#ff0000
),按照距离#000000
的权重,进行变色(简单说就是加深多少 )
Less中Css预处理器的更多相关文章
- CSS 预处理器中的循环
本文由 nzbin 翻译,黄利民 校稿.未经许可,禁止转载! 英文出处:css-tricks.com 发表地址:http://web.jobbole.com/91016/ 如果你看过老的科幻电影,你一 ...
- css预处理器sass使用教程(多图预警)
css预处理器赋予了css动态语言的特性,如变量.函数.运算.继承.嵌套等,有助于更好地组织管理样式文件,以及更高效地开发项目.css预处理器可以更方便的维护和管理css代码,让整个网页变得更加灵活可 ...
- 关于前端CSS预处理器Sass的小知识!
前面的话 "CSS预处理器"(css preprocessor)的基本思想是,用一种专门的编程语言,进行网页样式设计,然后再编译成正常的CSS文件.SASS是一种CSS的开发工 ...
- CSS预处理器Sass、LESS 和 Stylus
CSS 预处理器技术已经非常的成熟,而且也涌现出了越来越多的 CSS 的预处理器框架.本文向你介绍使用最为普遍的三款 CSS 预处理器框架,分别是 Sass.Less CSS.Stylus. 首先我们 ...
- Myth – 支持变量和数学函数的 CSS 预处理器
Myth 是一个预处理器,有点类似于 CSS polyfill .Myth 让你写纯粹的 CSS,同时还让你可以使用类似 LESS 和 Sass 的工具.您仍然可以使用变量和数学函数,就像你在其它预处 ...
- 为您详细比较三个 CSS 预处理器(框架):Sass、LESS 和 Stylus
CSS 预处理器技术已经非常的成熟,而且也涌现出了越来越多的 CSS 的预处理器框架.本文向你介绍使用最为普遍的三款 CSS 预处理器框架,分别是 Sass.Less CSS.Stylus. 首先我们 ...
- 160907、CSS 预处理器-Less
CSS 预处理器是什么?一般来说,它们基于 CSS 扩展了一套属于自己的 DSL,来解决我们书写 CSS 时难以解决的问题: 语法不够强大,比如无法嵌套书写导致模块化开发中需要书写很多重复的选择器: ...
- CSS预处理器实践之Sass、Less大比拼[转]
什么是CSS预处理器? CSS可以让你做很多事情,但它毕竟是给浏览器认的东西,对开发者来说,Css缺乏很多特性,例如变量.常量以及一些编程语法,代码难易组织和维护.这时Css预处理器就应运而生了.Cs ...
- CSS预处理器Sass(Scss)、Less、Stylus
CSS 预处理编译器能让我成程序化其的方式编写CSS代码,可以引入CSS中没有的变量.条件.函数等特性,从而让代码更简单易维护,但一般按预处理器语法编写的代码无法直接在浏览器中运行,需用通过工具比如g ...
随机推荐
- Vue必须必须要注意的几个细节
1.每次执行完,尽量npm run dev 一次,有时候又缓存问题 2.安装sass 一.使用save会在package.json中自动添加.因为sass-loader依赖于node-sass npm ...
- Mysql 52条SQL语句性能优化策略汇总
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在where及order by涉及的列上建立索引. 2.应尽量避免在where子句中对字段进行null值判断,创建表时NULL是默认值,但大多数时候应 ...
- CentOS 8 部署 ASP.NET Core 3.1 应用程序 kestrel+Nginx IIS+kestrel
vs2019发布到IIS 下载文档https://files.cnblogs.com/files/netlock/%E4%BD%BF%E7%94%A8VS2019%E5%8F%91%E5%B8%83 ...
- 浅谈 WebRTC 的 Audio 在进入 Encoder 之前的处理流程
在 WebRTC 中,Audio 数据在被送入编码器之前,有 2 大部分需要特别关注,一是数据采集,二是 Audio Processing. 作者:方来,技术专家,从事 voip 应用开发. 数据采集 ...
- .NET Core AWS S3云存储
前言 最近有需要用到AWS S3云存储上传附件,这里对利用.NET或.NET Core在调用SDK APi需要注意的一点小问题做个记录,或许能对后续有用到的童鞋提供一点帮助 AWS S3云存储 官方已 ...
- js--数组的reduce()方法的使用介绍
前言 阅读文章之前先来考虑一个问题,如何去实现迭代一个数组,并且把它累加到一个值中?首先能够想到的是设置一个初始值,然后通过循环遍历这个数组,将数组中的值一项一项累加起来,然后返回这个设置的值就是最终 ...
- eclipse再见,android studio 新手入门教程(一)基本设置
写在前面: 作为一个刚半只脚踏入android开发的新手,在使用eclipse开发了两个自我感觉不甚成熟的商城类app之后,遇到了一些问题,总结为如下: 代码复用性.findviewById,oncl ...
- Win10环境安装node.js和npm
Node.js和npm的关系 Node.js是一个基于Chrome V8引擎的JavaScript运行环境,使用了事件驱动非阻塞式I/O模型. npm(Node Package Manager)是一个 ...
- ViperX 300 Robot Arm 机械臂 “5自由度和360°全方位旋转”
- uniapp H5引入腾讯地图
在网上搜索了许多关于uniapp引入腾讯地图的方法都以失败告终,我开发的应用主要使用于H5,小程序与H5是不同的sdk,就不在这说了,况且小程序有手把手教学,可参考腾讯地图官网https://lbs. ...