Less的语法及使用方法

2023-11-20

1、变量

我们可以先看看别的里面创建变量和Less里面创建变量有什么不同:
在JavaScript里面创建变量有两种方式:
一种是使用var关键字来进行定义变量的,还有一种定义变量的方式就是let(这个是ES6里面的语法)定义的,这两种变量在JavaScript里面就可以明显的体现的出来。

在java里面定义变量就是每一种数据类型都有专门拿来定义的,就比如说用int来定义的变量只能存储数字类型的数据,这个就不能存储字符串类型的数据。

int a = 10;
a="大家好!";//然后在这个地方再去把a变量拿去使用就会出现报错

而Less里面创建变量的语法就是:
语法就是:@变量名:值;
例:

//这个是颜色
@red:#f00;
2、混合

这个混合的意思在这就是我们可以用定义好的变量在一个.bg(){}的里面进行直接使用,然后还可以在其括号里面进行添加参数,也可以直接在其里面进行调用带有括号的样式,这个就是所谓的混合。

在这里要注意的就是带有括号的那些样式只有在less里面才能看的到!

下面是一个简单的使用方法:

//创建变量并且加上一个颜色
@gray: #999;

// 只在less文件中存在,在less里面可以这样写进行调用
.bg() {
    background-color: @gray;
}
//开可以这样写记性调用,但是下面的这种写法在在编译出来的css文件里面会显现出来
.bg{
	background-color:@gray;
}
// ()中可以传递参数,也可以给定默认值,优先使用传递过来的参数
.center(@type: absolute) {
    position: @type;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
}
.content {
    color: red;
    .bg();
    .center(absolute);
}
.header {
    .bg();
    .center(fixed);
}
3、嵌套

Less提供了使用嵌套代替层叠结合使用的能力。在less里面写的代码如下:

#header {
  color: black;
  .navigation {
    font-size: 12px;
  }
  .logo {
    width: 300px;
  }
}

然后在less文件在vs code里面自动生成的css样式里面就会显现是下面的这个样子的:

#header {
  color: black;
}
#header .navigation {
  font-size: 12px;
}
#header .logo {
  width: 300px;
}

我们同时也有 其他的嵌套方式:

.container {
  width: 1000px;
  //在这里的&指的是他的父级的元素
  //这个是在当前选择器的前面添加一个空元素
  &::before {
       content: '';
       display: table;
  }
  //这个是在当前选择器的后面添加一个空元素
  &::after {
       content: "";
       display: flex;
  }
 .logo {
    width: 150px;
 }
 //还可以这样使用
 //其他的伪类选择器都可以这样使用,除了上面的::after和::before这两个伪类,这两个使用配合&使用的。
 a:hover{
 color:#ff0;
 }
}

在嵌套里面有冒泡的使用方法,在这里有使用的@符号的方法,使用这个表示规则,例如@media或@supports均可以于选择器一相同的方式进行嵌套。@规则会被放在前面,同一规则集中的其它元素的相对顺序保持不变,这就叫做冒泡。

在less里面写的语句,
例子:

.component {
  width: 300px;
  @media (min-width: 768px) {
    width: 600px;
    @media  (min-resolution: 192dpi) {
      background-image: url(/img/retina2x.png);
    }
  }
  @media (min-width: 1280px) {
    width: 800px;
  }
}

然后在其创建的less文件编译出来的css文件里面显示的代码如下:

.component {
  width: 300px;
}
@media (min-width: 768px) {
  .component {
    width: 600px;
  }
}
@media (min-width: 768px) and (min-resolution: 192dpi) {
  .component {
    background-image: url(/img/retina2x.png);
  }
}
@media (min-width: 1280px) {
  .component {
    width: 800px;
  }
}
4、运算

这里说的是less里面元素的方法,在less里面两者之间进行运算的运算符就是有+、-、*和/这四个方式,在这里可以进行对任何数字和颜色或变量进行运算。
在这里要注意的是,无论在用哪一个运算符进行运算他的值的单位始终保持着前面的一个变量的单位然后在进行使用后面一个数(这里是去掉了单位的),然后的到的结果就是前面的一个数值和后面的数值进行运算得出来的数再在后面添加上前面一个数据的单位。

具体的例子:

// 所有操作数被转换成相同的单位
@conversion-1: 5cm + 10mm; // 结果是 6cm
@conversion-2: 2 - 3cm - 5mm; // 结果是 -1.5cm


@incompatible-units: 2 + 5px - 3cm; // 结果是 4px


@base: 5%;
@filler: @base * 2; // 结果是 10%
@other: @base + @filler; // 结果是 15%

//颜色的计算
@color: #224488 / 2; //结果是 #112244
background-color: #112244 + #111; // 结果是 #223355

5、函数

在less里面就有一些内置的特定的函数有很多,可以用于转换颜色、处理字符串、算术运算符等等。我在这里介绍一下几个简单的函数的使用:
例:

@base: #f04615;
@width: 0.5;

.class {
//这个是将一个数字转换成百分比的数据
  width: percentage(@width); // return `50%`
 //这个是将颜色的饱和度增加5%
  color: saturate(@base, 5%);
 //lighten的函数表示的意思是将颜色的亮度降低25%,并且这里的spin函数是将色相值增加8
  background-color: spin(lighten(@base, 25%), 8);
  //那么在前面有降低,这里就有提升颜色的函数
  background-color: darken(@primary, 20%);
}
6、作用域

在这里我就要说一下JavaScript里面的作用域和less里面的作用域。
先说一下JavaScript里面的作用域是这样使用的规律的:
例:

var a = 12;
function d(){
	var b = 3;
	function e(){
	//在这里就是调用的最后面a然后再拿来使用的
		var c = a;
	//这个地方f所得到的值为3,就是他会先去找自己有没有这个b,如果没有那就会去他的父级去找
	//如果找到了就会直接拿来使用,就会停止去找上级去找变量的
		var	f = b;
	}
}

而在less里面的作用域和JavaScript差不多,就是定义变量的方法不一样,作用域的使用如下面代码:
例:

@var: red;

#page {
  @var: white;
  #header {
    color: @var; // white
  }
}

在这里要注意的就是变量的定义调用对其什么地方创建变量都不会对其使用没有影响,但是如果你没有你要使用的变量的时候没有,那么就会进行报错的。下面的代码就看的出变量定义的早和晚都没有影响的:
例:

@var: red;

#page {
  #header {
    color: @var; // white
  }
  @var: white;
}
7、注释

在这里我们都知道有很多种注释的方式。
那我们先来说说在JavaScript里面注释语句的时候的方法使用时的方法;
例://这是注释
很明显就是在JavaScript里面注释的方法就是“//”这个方法。

我们再说说在SQL Sever里面注释的语句的方法和上面的JavaScript里面注释语句的方法是一样的。

在css文件里面的注释的方法就是下面这样的:
例:/我是注释/
很明显就是在CSS里面注释的方法就是“/* */”这个方法。

在html里面要注释一段代码的方法就是下面这样的:
例:
很明显就是hrml里面注释的方式就是“ ”这个方法。

而在Less文件里面有两种注释的方法,但是他们有所不同:
先说一下里面有那两种注释:
第一种语法://我是注释
第二种语法:/我是注释/
在这里第一种注释方法只能在less里面才能看的见,而在其编译出来的css文件里面不会显示你在less里面的注释的,而在less文件里面使用第二种注释方法就会出现一个现象就是,在其编译出来的css文件里面会给你显现出来的。

8、导入

“导入”的工作方式和你预期的一样。你可以导入一个 .less 文件,此文件中的所有变量就可以全部使用了。如果导入的文件默认的是 .less 扩展名,则可以将扩展名省略掉:
例:

@import "library"; // library.less
@import "typo.css";
9、映射

这个映射是在Less3.5的版本里面才开始有的,在这个地方你可以将混合和规则集作为一组值得映射使用。
例:

#colors() {
  primary: blue;
  secondary: green;
}

.button {
  color: #colors[primary];
  border: 1px solid #colors[secondary];
}

在less编译出来的css文件里面显现的样式是这样的:

.button {
  color: blue;
  border: 1px solid green;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Less的语法及使用方法 的相关文章

  • 算术转换之寻常算术转换

    算术转换之寻常算术转换 题目 include
  • Python之动态规划

    序言 最近在学习python语言 语言有通用性 此文记录复习动态规划并练习python语言 动态规划 Dynamic Programming 动态规划是运筹学的一个分支 是求解决策过程最优化的过程 20世纪50年代初 美国数学家贝尔曼 R
  • 如何理解c++中的引用折叠?

    感觉上叫引用坍塌好理解点 reference collapsing rules 就这样 A 变成 A A 变成 A A 变成 A A 变成 A 就是左值引用会传染 只有纯右值 沾上一个左值引用就变左值引用了 作者 知乎用户 链接 https
  • 安卓手机屏幕坏了如何导出数据_ICMAX教你如何导出坏手机里面的EMMC存储芯片资料...

    手机主板坏了或者是手机坏了开不了机了 不想拿去修 又想把手机内存里面的东西导出来 该怎办才好 今天宏旺半导体就和大家聊聊如何把坏掉手机里的资料导出来 之前写过 废旧手机里的eMMC芯片如何重新利用 宏旺半导体亲身实验 eMMC改U盘 等文章
  • Spring源码分析(八)依赖注入源码解析1:autowire自动注入 和 @Autowired注入

    Spring中到底有几种依赖注入的方式 首先分两种 手动注入 自动注入 手动注入 在XML中定义Bean时 就是手动注入 因为是程序员手动给某个属性指定了值
  • hbuilderx 小程序分包_如何使用HBuilderX开发微信小程序

    注意 本文讲的是使用HBuilderX开发原生微信小程序 不是uni app 使用uni app请在HBuilderX中新建uni app项目 很多开发者需要开发小程序 但小程序的开发IDE却总被众多开发者吐槽 很多开发者只把微信开发工具当
  • Redis的五种数据类型及应用场景

    文章目录 1 数据类型 1 String 2 List 3 Set 4 Hash 5 ZSet 6 五种数据类型的原理 2 五种数据类型的应用场景 1 数据类型 String 字符串 整数 浮点数 做简单的键值对缓存 List 列表 储存一
  • Springboot结合Redis实现分布式定时任务

    一 背景 之前分享过分布式定时任务的技术选型方案 分布式定时任务技术选型方案 个人青睐xxl job 分享了搭建接入流程 xxl job搭建方案 本次项目需求较为简单 同时时间紧张 下面介绍利用Redis锁实现分布式定时任务的方案 二 Sc
  • OpenCV学习目录

    1 张正友相机标定Opencv实现以及标定流程 标定结果评价 图像矫正流程解析 附标定程序和棋盘图 https blog csdn net dcrmg article details 52939318 2 opencv视频操作基础 Vide
  • 运行npm install 时 postinstall: sill install executeActions,卡住不动

    npm install一直停留在postinstall sill install executeActions卡住不动 可以使用如下命令设置为淘宝的镜像源 npm config set registry https registry npm
  • 原生JS获取cookie并转换成json

    原生获取cookie var cookieString document cookie 原生获取的cookie转换为JSON的方法 1 原始转换 function cookie to json var cookie text documen
  • 零基础入门 Stable Diffusion - 无需显卡把 AI 绘画引擎搬进家用电脑

    我从小特别羡慕会画画的伙伴 他们能够将心中的想法画出来 而我最高水平的肖像画是丁老头 但在接触 Stable Diffusion 之后 我感觉自己脱胎换骨 给自己贴上了 会画画 的新标签 丁老头进化旅程 Stable Diffusion 是
  • AI合同比对:提高合同审核效率的利器

    每到合同签署前期 审稿员小火就被淹没在了不同版本的合同中 即使有些是制式合同 但为了防止合同被修改过 小火仍需要对不同版本的全部条款做确认 其中涉及到的文本审核工作量巨大 一旦错漏 可能会造成不可估量的影响 为了解决了人工比对合同时间长 风
  • sqli-labs-less-7 使用outfile函数写入一句话木马

    Less 7 一句话木马 判断注入点 127 0 0 1 sqli labs master Less 7 id 1 显示正常 提示 You are in Use outfile 127 0 0 1 sqli labs master Less
  • cnds

    csdn是全球知名中文IT技术交流平台 创建于1999年 包含原创博客 精品问答 职业培训 技术论坛 资源下载等产品服务 提供原创 优质 完整内容的专业IT技术开发社区 官网 https www csdn net 经常打错顺序 cnds c
  • 15款提高表格操作的jQuery插件

    table表格由于它的浏览器兼容性和复杂的标签嵌套方式 可以算是添加样式最困难的对象之一了 大多数前端er都把网页中的table标签替换为div 主要就是因为div要比table更容易添加CSS样式 但是我们在日常应用中仍然要用到table
  • MySQL 数据抽稀 每分钟取一条

    假如原始数据为每5秒一个数据 现在想展示为每4分钟一条数据 先按照分钟数把除以4余数为0的行选出来 在按照 年月日 时分 做组内排序 窗函数ROW NUMBER 最后再拿出序号为1的行 以下每分钟一条 with data 02 AS SEL
  • ubuntu查找apt-get安装的库的位置并添加到cmakelist中

    查找apt get安装的库的位置 我们经常会通过apt get来安装预编译的库或软件 这种安装方式非常简单快速 但是安装的库都到哪里了呢 如果我们自己的c 工程需要链接这个库又该怎么做呢 apt get install安装目录是包的维护者确
  • CentOS 7 调优之周期性的访问中断

    文章目录 背景 问题描述 原因分析 解决方案 相关版本 背景 操作系统版本 CentOS Linux release 7 6 1810 Core 操作系统镜像安装后 未进行任何调整 正常部署应用 应用在 CentOS 7 9 未出现过此类现
  • STM32在Debug时程序运行时间不对,Debug时定时器中断每次进入断点时间不对,定时器一开启就进入中断的解决办法

    一 Debug时程序时间不对解决办法 1 点击魔术棒 2 点击Debug 点击Settings 3 点击Trace 在Core Clock里修改为你的系统时钟 二 Debug时定时器中断每次进入断点时间不对 在Debug时 程序停下来 定时

随机推荐