Less预处理学习笔记

预处理器Less less是一种动态样式语言;为提高css应用的灵活性和效率,less将css赋予了动态语言的特性,如变量、继承、运算、函数。less既可以在客户端上运行,也可以借助Node.js在服务端运行。//用变量去定义变量 @fond : @ var;@ {}} 阅读详情

1.前言

CSS预处理是一种将CSS作为目标生成文件的,使用变量、函数及其简单的逻辑实现更加简洁、适应性更强、可读性更好、更加易于代码维护的兼容浏览器的页面样式文件

1.1为什么要进行CSS预处理

​ CSS自但诞生以来,基本语法和核心机制一直没有本质上的变化,它的发展几乎全是表现力层面上的提升。最开 始 CSS 在网页中的作用只是辅助性的装饰,轻便易学是最大的需求;然而如今网站的复杂度已经不可同日而语,原 生 CSS 已经让开发者力不从心。

​ 而CSS预处理用一种专门的编程语言,为CSS增加了一些编程的特性,将CSS作为目标生成文件,然后开发者就 只要使用这种语言进行编码工作。通俗的说,CSS预处理器用一种专门的编程语言,进行Web页面样式设计,无需 考虑浏览器的兼容性问题,然后再编译成正常的CSS文件,以供项目使用。例如你可以在CSS中使用变量、简单的 逻辑程序、函数等等在编程语言中的一些基本特性,可以让你的CSS更加简洁、适应性更强、可读性更佳,更易于代码的维护。

一些常见的CSS缺憾:

  1. 语法不够强大,比如无法嵌套书写导致模块化开发中需要书写很多重复的选择器;
  2. 没有变量和合理的样式复用机制,使得逻辑上相关的属性值必须以字面量的形式重复输出,导致难以维护。

1.2 三大预处理语言

分别是Less、Sass和Stylus

  1. Sass: 2007年诞生,最早也是最成熟的CSS预处理器,拥有ruby社区的支持和compass这一最强大的css框架,目前受LESS影响,已经进化到了全面兼容CSS的SCSS。
  2. Less: 2009年出现,受SASS的影响较大,但又使用CSS的语法,让大部分开发者和设计师更容易上手,在ruby社区之外支持者远超过SASS,其缺点是比起SASS来,可编程功能不够,不过优点是简单和兼容CSS
  3. Stylus: 2010年产生,来自Node.js社区,主要用来给Node项目进行CSS预处理支持,在此社区之内有一定支持者,在广泛的意义上人气还完全不如SASS和LESS。

1.3 Less的功能与简介

Less 是一门 CSS 预处理语言,它扩充了 CSS 语言,增加了诸如变量、混合、函数等功能,让 CSS 更易维护、 方便制作主题、扩充。Less 可以运行在 Node 或浏览器端。

​ 本质上,Less 包含一套自定义的语法及一个解析器,用户根据这些语法定义自己的样式规则,这些规则最终 会通过解析器,编译生成对应的 CSS 文件。Less并没有裁剪 CSS 原有的特性,更不是用来取代 CSS 的,而是在现 有 CSS 语法的基础上,为 CSS 加入程序式语言的特性。

1.4 引入Less的方式

Less既可以运行在Node服务端,也可以运行在浏览器客户端。

一般来说,客户端运行Less分为两种情况:

  1. 第一种方式是直接在html页面引用.less文件,然后借助less.js去编译less文件动态生成CSS样式而存在于当 前页面,这种方式适用于开发模式。
 <link rel="stylesheet/less" href="style.less">
 <script src="less.min.js"></script>

2.第二种方式是我们首先写好.less文件的语法,然后借助工具生成对应 的CSS文件,然后客户端直接引用CSS文件即可。比如我们常用的bootstrap.css就是通过工具编译而成,这种方式更适合运行环境。

下面我写一下在vscode中如何使用:

  1. 安装Ease LESS插件
  2. 在setting.json中添加以下配置
  "[less]":{
		"editor.suggest.insertMode":"replace"
	},
	"less.compile": {
        "compress": false, // 是否删除多余空白字符
        "sourceMap": false, // 是否创建文件目录树,true的话会自动生成一个 .css.map 文件
        "out": true, // 是否编译输出文件
        "outExt": ".css", // 输出文件的后缀,默认为.css
    }

​ 3. 检测是否搭建成功,建立.less文件,写入相关代码后会自动编译CSS文件

2.正文

Less的语法以及其他特性

2.1 变量

Less中的允许我们在某个地方对常用的值进行定义,然后应用到样式中。以后当我们改变定义的变量参数值就可以达到改变全局的效果

值得一提的是在Less中的变量实际上是一个常量,因此它们只能被定义一次。

那么我们可以将CSS中的什么定义为变量呢?

几乎有复用的可以,例如值、选择器、属性名称、URL地址等(还可以使用变量去定义变量)

详细请看实例:

@color:rgb(255,189,91);//值
@box_showdow:0px -2px 2px 2px #999;
@boxname:box;//选择器
.@{boxname}{
    color: @color;
    width: 200px;
    height: 50px;
    box-shadow: @box_showdow;
    margin-bottom: 20px;
}
p{
  color: @color;
  width: 200px;
  height: 100px;
  border: 1px solid #000;
}
@cl:#000;
@hightlight:'cl';//使用变量去定义变量
#header{
    color: @@hightlight;
}

对应CSS:

.box {
  color: #ffbd5b;
  width: 200px;
  height: 50px;
  box-shadow: 0px -2px 2px 2px #999;
  margin-bottom: 20px;
}
p {
  color: #ffbd5b;
  width: 200px;
  height: 100px;
  border: 1px solid #000;
}
#header {
  color: #000;
}

2.2 混合用法

首先我们需要清楚的是这种使用方式和函数的使用是类似的

1.不带参使用:

直接引用其类名即可

.style{
    color: aqua;
    font-family: 'Courier New', Courier, monospace;
}
.box1{
    .style;
}

生成CSS:

.style {
  color: aqua;
  font-family: 'Courier New', Courier, monospace;
}
.box1 {
  color: aqua;
  font-family: 'Courier New', Courier, monospace;
}

1.带参使用:

带参数时可以给定默认值或者不给,并且可以带多个参数。

.bg(@fontsize:3px){
    background: #000;
    font-weight: 100;
    font-size: @fontsize;
}
.box{
    .bg(5px)
}

对应CSS:

.box {
  background: #000;
  font-weight: 100;
  font-size: 5px;
}

2.3 嵌套

关于less的嵌套我们需要知道&符号是表示上一层选择器的名,常用在表示伪类或伪元素等时使用

实例:

div{
    width: 100px;
    height: 100px;
    ul{
        width: 100%;
        li{
            list-style-type: none;
            text-align: center;
            &:hover{
                color: red;
            }
        }
    }
    p{
        font-size: 24px;
        color: aqua;
    }
}

生成对应CSS:

div {
  width: 100px;
  height: 100px;
}
div ul {
  width: 100%;
}
div ul li {
  list-style-type: none;
  text-align: center;
}
div ul li:hover {
  color: red;
}
div p {
  font-size: 24px;
  color: aqua;
}

2.4 运算

运算时变量需要带单位,然后直接进行运算

实例:

@num:20px;
div{
    margin: @num+10 @num - 10 @num*10 (@num/10);
}

生成的CSS:

div {
  margin: 30px 10px 200px 2px;
}

2.5 作用域

作用域在编译时采用就近原则。首先会从当前作用域内去查找变量或者混合模块,如果没有找到,则去父级作用域查找,知道找到为止。

实例:

@color:red;
div{
    color: @color;
}
p{
@color:yellow;
color: @color;
}

生成的CSS

div {
  color: red;
}
p {
  color: yellow;
}

2.6 函数

2.6.1 Color函数

Less提供了一系列的颜色运算函数。颜色会先被转换为HSL色彩空间,然后在通道级别操作。常用的有以下几种:

函数解释
lighten(@color, 10%);返回一个比@color浅10%的颜色
darken(@color, 10%);返回一个比@color 深10%的颜色
saturate(@color, 10%);返回一个比color饱和比高10%的颜色
desaturate(@color, 10%);返回一个比color饱和比低10%的颜色
fadein(@color, 10%);返回一个比@color 透明度低10%的颜色
fadeout(@color, 10%);返回一个比@color 透明度高10%的颜色
fade(@color, 50%);返回一个@color颜色的50%透明度的颜色
spin(@color, 10);返回一个比@color 色调大10度的颜色
spin(@color, -10);返回一个比@color 色调小10度的颜色
mix(@color1, @color2) 返回返回一个@color1和@color2混合的颜色

2.6.2 Math函数

LESS提供了一组方便的数学函数,可以使用它们处理一些数字类型的值。常用的有以下几种:

函数解释
round(x,y)对x四舍五入,保留y个小数点
ceil(x)向上取整
floor(x)向下取整
percentage(x)取百分数。比如percentage(0.6)返回60%
min(a,b,c,d,e…)最小值
max(a,b,c,d,e…)最大值

2.7 避免编译

有时候我们需要输出一些不正确的CSS语法或者使用一些 Less不认识的专有语法,要输出这样的值我们可以将 要避免编译的值用 “”包含起来,然后在字符串前加上一个“ ~ ”。

#main{
    width:~'calc(300px-30px)';
} 

生成:

#main {
  width: calc(300px-30px);
}
Unreal5从入门到精通之一文搞懂Unreal的C++代码编译之谜 我们在开发Unreal项目时,如果时蓝图模板的项目,一般问题不大,因为当你修改完蓝图,点击编译Compile+保存Save,就可以继续开发了。这对于开发者来说也非常友好。但是,如果你使用的C++模板开发项目,代码编译一切都变得魔幻起来,IDE(VS/Rider)里面有编译,编辑器里面也有编译,有什么区别呢?我们来列举几个新手常碰到的问题。1.代码我明明新建了,编辑器里怎么看不到?2.昨天我新家的功能运行的好好的,今天怎么感觉还是老逻辑。或者昨天加的新代码,新蓝图不见了。 阅读详情

相关推荐

Diffusion、VAE与GAN:三大生成模型的原理对比与应用场景解析

本文深入解析了Diffusion、VAE与GAN三大生成模型的核心原理与特性。Diffusion模型通过逆向去噪过程实现高质量图像生成,但计算成本较高;VAE擅长学习概率潜空间,训练稳定但图像偏模糊;GAN通过对抗训练生成锐利图像,但存在模式崩溃风险。文章结合实战场景,为图像生成、修复、超分辨率等任务提供了清晰的模型选择指南。

weixin_29063979的博客 344

【Less】预处理语言

less:css预处理语言 .less,减少开发的代码量,将css变成更加动态的编程方式sass:css预处理语言 .sass(使用服务器解析不是基于nodejs;sass是最大的预处理语言,它由Ruby服务器运行环境解析)使用:1.less文件浏览器无法解析,需要重新编译成css文件浏览器才能识别(借助第三方工具)2.less文件可以通过服务器解析,直接运行。

千里之行,始于足下 551

1991-2020年气候背景数据集

2011 年,国家气象信息中心对 1951-2010 年 2400 余个地面站气温、气压、降水、湿度、日照等 19 大要素项的定时观测资料和日极值资料中由数字化过程中引起的系统性问题(例如数字化遗漏、整段拷贝等问题)进行质量检测、质量控制和错误数据的更正,形成较高质量的地面基础资料集。1991-2020年中国地面气候值数据集提供了中国2438个站点的气温、降水、气压、风向风速、相对湿度、水汽压、云、天气现象、能见度、蒸发、积雪、地温、冻土、日照共14个要素的气候背景信息。数据时间:30年平均。

地球资源数据云的官方博客 1597

less 使用指南

参考文档: less 中文网 less 快速入门 less 指南 # 简介 Less is More, Than CSS - 少即是多,比如CSS。 Less 是一门 CSS 预处理语言。 Less 是一种由Alexis Sellier设计的动态层叠样式表语言,受Sass所影响,同时也影响了Sass的新语法:SCSS。 LESS是开源的,其第一个版本由Ruby写成,但在后续的版

李鴻耀 8856

达梦的自定义类型和存储过程支持创建同义词,不支持同义词使用?

达梦8的自定义类型和存储过程支持创建同义词,但是通过同义词调用报错,而在oracle上验证没有问题,难道是发现了达梦的bug了?非也非也,详情请见下文

wy071218的专栏 979

详解电路设计中的RC电路

​ 一、什么是RC电路 RC电路是指由电阻R和电容C组成的电路,它是脉冲产生和整形电路中常用到 的电路。 常见的RC充、放电电路、RC积分电路合RC微分电路接下来详细讲解。 二、RC充、放电电路 RC充、放电电路如下图所示,下面通过充电和放电两个过程来分析此电路。 ​RC充、放电电路图 (1)RC充电电路 RC充电电路图如下图(a)所示 RC充电电路图及充电曲线图 ​由上图分析: 将上图a中开关S置于“1”处,电源E开始通过电阻R对电容C充电,由于刚开始充电时电容两端没有..

IT xiaobai 4万+

less模块——math函数

round(2.86)   //四舍五入  返回  3ceil(2.3)           //向上取整 返回  3floor(2.6)            //向下取整  返回 2);percentage(0.6)    //转为百分比  返回60%

奔跑的程序员 1452

SAP中MRP运行计划行超限问题的分析与解决

SAP中基于生产性物料的采购特点,通常会采用采购计划协议的方式进行采购。其具体的采购计划通常来自于成品计划独立需求,然后通过物料清单,经由MRP跑出。 在采购计划协议中的计划行中,存在一个计划行号,随着MRP在不断跑出新的计划行,该行号资源会消耗完。当计划行号消耗完后,MRP不会再跑出新的计划行。且在MD04或MD02中看不到类似提示信息。此时可以通过MD05来查看是否出现类似下图的提示信息。 ...

专注SAP应用技术文章写作,致力于拉近用户与系统间的距离; 3845

预处理 less

目录 一、less概述 二、less编译工具 三、less中的变量 1. 使用@来声明一个变量 2. 变量的延迟加载 四、less的嵌套规则 1. 基本嵌套规则:父级、祖先等 2. &的使用: &代表的是平级 ​​ 五、less中的混合 1. less的混合概述 2. less的混合方式 3. 命名参数 6. 匹配模式 六、less运算 七、继承 八、避免编译 一、less概述 less是一种动态样式语言,属于css预处理器的范畴,它扩展了cs.

hhh_7789的博客 829

【SPI-NAND】Linux驱动移植实战:从规格书解析到内核适配

本文详细解析了SPI-NAND Flash的Linux驱动移植实战,从规格书关键参数提取到内核MTD子系统适配。内容涵盖存储结构解析、命令集映射、设备树配置及厂商驱动开发,特别强调ECC校验、坏块管理等NAND特性处理,并提供了性能优化与测试验证的实用技巧。

weixin_27076351的博客 351

VSCode上搭建C/C++开发环境(vscode配置c/c++环境)Windows系统---保姆级教程

关于VSCode上搭建C/C++开发环境的内容,到这里就结束了,这里博主感叹一下,VSCode真的挺强大的,作为一个编辑器,可以通过和编译器链接成为开发环境,将环境配置好的话,在这上面写代码似乎也是个不错的选择。大家有任何疑问,欢迎在评论区中提出,本篇博客有任何问题和错误也欢迎来和博主讨论,真心希望能和大家一起进步。最后,如果本篇博客对你有帮助的话,能不能给博主一个三连啊!

2303_79329831的博客 8万+

css预处理器(less学习笔记)

什么是css预处理器?CSS 预处理器定义了一种新的语言,其基本思想是,用一种专门的编程语言,为 CSS 增加了一些编程的特性,将 CSS 作为目标生成文件,然后开发者就只要使用这种语言进行编码工作。CSS 预处理器用一种专门的编程语言,进行 Web 页面样式设计,然后再编译成正常的 CSS 文件,以供项目使用。CSS 预处理器为 CSS 增加一些编程的特性,无需考虑浏览器的兼容性问题通俗的说:

xi_2130的博客 2271

【推荐100个unity插件】unity实现交互式火焰 —— Ignis

Ignis是一款Unity互动式消防系统插件,可轻松将物体转换为可燃物。支持固体、植被、蒙皮网格和地形树木等多种对象类型,提供火焰蔓延、熄灭等效果。安装需通过Unity Package Manager添加Visual Effects Graph,并按照指引转换目标物体材质。使用盒型碰撞体或网格计算燃烧区域,可自定义火焰参数和视觉效果。内置多种转换选项,如Flammable Vegetation、Flammable Skinned Mesh等,适用于不同场景需求。注意使用前需备份材质和地形数据,并提供性能优化

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 2239

css预处理语言less学习笔记

less的使用方法:1.通过npm使用npm install -g less安装less 2.在HTML头部引入less.js文件 3.用编辑器的插件 4.使用打包工具

mhc20201554114的博客 159

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Less学习笔记

简介 Less 是一门 CSS 预处理语言,它扩展了 CSS 语言,增加了变量、Mixin、函数等特性,使 CSS 更易维护和扩展。 Less 可以运行在 Node 或浏览器端。 目前CSS预处理语言主要有SASS、SCSS、Less、Stylus。相比于其他的预处理语言,Less在功能的丰富性上略输一筹,相应的学习成本也较低,基本满足了咱们对于CSS编程式开发的需求。 因为在工作中接触到vu...

毫无技术含量的博客 798

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

less学习笔记

// 1.less的注释 // 嵌套语法 只想给开发人员看到得注释 /*包裹注释 会被编译到css文件中*/ // 2.变量/及变量运算 // @width:300px; // @color:blue; // @height:@width + 100px; // 3.作用域/块级作用域/变量延迟加载 // @size:10px; // body{ // bac...

张印的博客 394

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

CSS3与页面布局学习笔记(七)——前端预处理技术(Less、Sass、CoffeeScript、TypeScript)...

CSS不像其它高级语言一样支持算术运算、变量、流程控制与面向对象特性,所以CSS样式较多时会引起一些问题,如修改复杂,冗余,某些别的语言很简单的功能实现不了等。而javascript则是一种半面向对象的动态语言,有java的影子,有C的味道,中间有比其它语言多的糟粕,使用预处理办法可以解决这些问题。其中Less[les]与Sass是CSS的预处理技术,而CoffeeScript、TypeScrip...

weixin_30945039的博客 305

Less的学习笔记

Less的学习笔记 1.首先附上less的官方网址 https://less.bootcss.com/ 2.其次是自己的码云地址(gitee) https://gitee.com/wangming0123/less_note 笔记内容:官方文档的demo实现。

wangming0123的博客 130

LESS学习笔记 —— 入门

今天在网上完成了LESS的基础学习,下面是我的学习笔记。总共有三个文件:index.html、main.less、mian.css,其中mian.css是main.less经过Koala编译之后自动生成的。下面是代码: ——index.html <!DOCTYPE html> <html lang="zh-CN"> <head> &lt...

weixin_30888707的博客 93

【CSS预处理语言】less快速入门

前端css预处理语言,less,十分钟,一文快速入门。

BugMan的博客 2679

Less预处理——混合方法

Less预处理——混合方法的使用

HuoZhiyan 的博客 2878

Less预处理——变量和嵌套

Less预处理——变量和嵌套的用法

HuoZhiyan 的博客 3653

Less预处理——初识Less

初识Less预处理,Less is more.

HuoZhiyan 的博客 1997

预处理器less

预处理器less less官方网站 bootstrap中less教程 less是一种动态样式语言,属于css预处理器的范畴,它扩展了 CSS 语言, 增加了变量、Mixin、函数等特性,使 CSS 更易维护和扩展 LESS 既可以在 客户端 上运行 ,也可以借助Node.js在服务端运行。 less能干啥 举个例子 这是css写法,如果写的太多搞不清楚嵌套层级 * { margin: 0; padding: 0; } #wrap { position: relative; width: 30

li520_fei的博客 2450

9_less教程 --[CSS预处理]

LESS(Leaner Style Sheets)是一种CSS预处理器,它扩展了CSS语言,增加了变量、嵌套规则、混合(mixins)、函数等功能,使得样式表的编写更加灵活和易于维护。下面是一些LESS的基础教程内容:

桃园码工的博客 1923
上一篇: 前端常用的8种设计模式
下一篇: Vscode解决 Failed to connect to github.com port 443:connection timed out
小牲口online
博客等级 码龄8年 116粉丝 68原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值