首页 > 其他分享 >Less学习笔记

Less学习笔记

时间:2024-12-11 16:09:26浏览次数:4  
标签:less color Less 笔记 height 学习 width background css

1. 概述

  • Less 是一款比较流行的 css 预处理语言,支持变量、混合、函数、嵌套、循环等特点

  • 通俗的说 CSS 预处理器用一种专门的编程语言,进行 Web 页面样式设计,然后再编译成正常的 CSS 文件,以供项目使用

  • 能够解决 CSS 重复代码较多的问题

2. 编译

2.1 方式 1

  • 安装 node

  • 安装 less:npm i -g less

  • 编译 less:lessc style.less style.css

  • 写的 less 代码如下

@width: 980px;
@height: @width + 100px;
@color: skyblue;

#header {
	width: @width;
	height: @height;
	background-color: @color;
}
  • 编译成的 css 代码如下
#header {
	width: 980px;
	height: 1080px;
	background-color: skyblue;
}

2.2 方式 2

  • 引入(后面就会自动编译了)
<link rel="stylesheet/less" type="text/css" href="styles.less" />
<script src="https://cdn.jsdelivr.net/npm/less@4"></script>
    • file 协议:×(即不能直接 Alt + B 打开 html 文件)

    • http 协议:√(即得用 open with live server 打开)

2.3 方式 3

  • 使用 vscode 插件:Easy Less

  • 写完 less 代码之后保存,会自动把 less 文件转化为 css 文件

2.4 方式 4

  • 上面三种方式不需要掌握,后面会通过 webpack 对 less 进行编译

3. 变量

  • 格式:@变量名:变量值

  • 选择器的名字也可以使用变量声明,Url 地址也可以使用变量,如下:

@width: 980px;
@height: @width + 100px;
@color: skyblue;
@mybanner: banner;
@imgurl: "../images/ad/01/";

.@{mybanner} {
	width: @width;
	height: @height;
	background-color: @color;
	background-image: url("@{imgurl}/0.png");
}
  • 编译后的 css 代码
.banner {
	width: 980px;
	height: 1080px;
	background-color: skyblue;
	background-image: url("../images/ad/01//0.png");
}
  • 注:变量可以先使用后声明
#header {
	width: @width;
}

@width: 980px;

4. 混合

  • 混合允许将一个类的属性用于另一个类,并且包含类名作为其属性

  • 如果想创建一个混合,且不希望这个混合出现在你的 css 中,则在混合定义后面加()

  • 在混合调用后使用!important关键字将它继承的所有属性标记为!important

// 以下混合定义时加了(),这样就不会出现在css中
.box1() {
	color: red;
	margin: 10px;
	padding: 20px;
}

.box2 {
	background-color: red;
	.box1() !important;
}

.box3 {
	background-color: gold;
	.box1; // 等价于.box1();
}
  • 混合也可以接受参数,这些参数是混合时传递给选择器块的变量
.border-radius(@redius: 1px, @color: blue) {
	border-radius: @radius;
	color: @color;
}

.box1 {
	.border-radius(10px, red);
}

.box2 {
	.border-radius(); // 不传参,使用默认值
}

.box3 {
	.border-radius(100px);
}

5. 嵌套(重点)

  • Less 提供了使用嵌套(nesting)代替层叠或者层叠结合使用的能力

  • 可以使用嵌套将伪选择器与混合一起使用,重写为一个混合(&表示当前选择器的父级)

  • html 结构

<div class="header">
	<div class="nav">
		<ul>
			<li><a href="#">导航1</a></li>
			<li><a href="#">导航2</a></li>
			<li><a href="#">导航3</a></li>
		</ul>
	</div>
</div>
  • style.less
.header {
	width: 100%;
	height: 60px;
	background-color: #999;
	.nav {
		width: 1000px;
		margin: 0 auto;
		ul {
			overflow: hidden;
			clear: both;
			li {
				float: left;
				margin: 10px;
				// 此处&是li
				&:hover {
					background-color: green;
				}
				a {
					color: red;
				}
			}
		}
	}
}

6. 运算

  • 算术运算符 +、·、*、/ 可以对任何数字、颜色或变量进行运算

  • 如果可能的话,算术运算符在加、减或比较之前会进行单位换算,计算的结果以最左侧操作数的单位类型为准

  • 如果单位换算无效或失去意义,则忽略单位

@font-size: 12px;
@width: 1000px;
@color: #222222;
@height: 500px;

.header {
	font-size: @font-size + 20px;
}

.container {
	width: @width - 120;
}

.box {
	background-color: @color * 3;
}

.box1 {
	height: (@height / 2);
}

7. 函数

  • Less 内置了多种函数用于转换颜色、处理字符串、算术运算等,这些函数在 less 函数手册中有详细介绍

  • 函数手册地址

8. 作用域

  • Less 中的作用域与 css 中的作用域非常类似,首先在本地查找变量和混合,若找不到,则从父级作用域继承
@width: 200px;

.root {
	.nav {
		@width: 400px;
		.li {
			width: @width;
		}
	}
}
  • css
.root .nav .li {
	width: 400px;
}
  • 与 css 自定义属性一样,混合和变量的定义不必在引用之前事先定义

9. 导入

  • 可以导入一个.less文件,此文件中的所有变量就都可以全部使用了,如果导入的文件是.less扩展名,则可以将扩展名省略掉
@import "init.less";

标签:less,color,Less,笔记,height,学习,width,background,css
From: https://www.cnblogs.com/iRuriCatt/p/18599847

相关文章

  • Visual Autoregressive Modeling(VAR)学习笔记
    paper:2404.02905(arxiv.org)https://arxiv.org/pdf/2404.02905GitHub:GitHub-FoundationVision/VAR:[NeurIPS2024Oral][GPTbeatsdiffusion......
  • 【学习日记】Java创建简单登录功能
    步骤:1、开发登录界面,提示用户通过键盘输入登录名和密码。创建了一个Scanner对象sc,以便后续读取用户在控制台输入的用户名和密码信息。Scannersc=newScanner(System.in);System.out.println("请输入用户名:");Stringusername=sc.next();System.out.pri......
  • 【机器学习】机器学习的基本分类-无监督学习-主成分分析(PCA:Principal Component Anal
    主成分分析(PrincipalComponentAnalysis,PCA)主成分分析(PCA)是一种常用的降维技术,用于将高维数据投影到低维空间,同时尽可能保留原数据的主要信息(方差)。1.PCA的核心思想目标:找到新的坐标轴(主成分),使得数据投影到这些轴上的方差最大化。主成分:数据的主要变化方向。第一个主......
  • 【机器学习】基础知识:SSR-残差平方和(Sum of Squared Residuals)
    1.概念残差平方和(SSR,SumofSquaredResiduals)是统计学和回归分析中的一个指标,用于评估模型拟合数据的效果。它表示数据点与模型预测值之间的差异(即残差)的平方和,公式为::实际值​:模型预测值n:样本数量2.残差平方和的意义衡量拟合质量:SSR越小,说明模型预测值与实际值越接......
  • MySQL学习笔记Day6
    一、存储过程存储过程是事先经过编译并存储在数据库中的一段SQL语句的集合,调用存储过程可以简化应用开发人员的很多重复的工作,提高数据处理的效率。1、特点(1)封装、复用(2)可接收参数(3)减少网络交互,提高效率2、语法结构delimiter$$ --设置sql语句以$$结束CREATE......
  • 软件测试学习记录(六)
    Redis缓存数据库1.什么是redis?Redis是当前使用最广泛的NoSQL,而就Redis技术而言,它的性能十分优越,可以支持每秒十几万次的读/写操作,其性能远超数据库,并且还支持集群、分布式、主从同步等配置,原则上可以无限扩展,让更多的数据存储在内存中,更让人欣慰的是它还支持一定的事务能力......
  • js逆向学习-1 逆向rsa简单加密
    RSA加密Rsa加密包含一个key和一个mode这个mode默认10001,也可以修改观察发送的数据首先点击登录选择xhr这个筛选模块,可以看到这里面只有这个check的数据请求,然后查看发送的数据,可以看到这里的密码是进行加密的然后记录这些值打断点知道了请求和加密的数据,现在就是去......
  • 【深度学习框架学习|Keras Layers API详解1】Keras最简单的深度学习框架!你对基于Keras
    【深度学习框架学习|KerasLayersAPI详解1】Keras最简单的深度学习框架!你对基于KerasLayersAPI了解多少?来看看吧【深度学习框架学习|KerasLayersAPI详解1】Keras最简单的深度学习框架!你对基于KerasLayersAPI了解多少?来看看吧文章目录【深度学习框架学习|Keras......
  • makefile学习
     实例1 SHELL:=/bin/bash#\1.ifneq只能在规则里使用,不能在函数里使用\2.函数和依赖的方式哪个更好:\1.函数:$(callfunc,args...),无论all是否需要构建都会立即执行;\2.依赖:all:a1a2,Make决定是否需要重新构建,取决于a1和a2是否比all更新TARG......
  • 强化学习(ChatGPT回答):Reward Landscape —— 奖励分布图
    奖励景观(机器学习、强化学习)在强化学习中,RewardLandscape指的是奖励函数随着状态和行为的变化所形成的空间结构。它可以帮助理解智能体如何通过探索奖励的分布来优化策略。翻译:奖励景观;奖励分布图。例句:Theagentlearnstonavigatetherewardlandscapeeffectivel......