Less知识点整理学习笔记

news/2024/11/18 2:42:07/

文章目录

    • 1. Less介绍
    • 2. 安装
      • 2.1 部署node.js环境
      • 2.2 安装Less
      • 2.3 WebStorm配置Less
    • 3. Less语法
      • 3.1 变量
      • 3.2 嵌套
      • 3.3 运算

1. Less介绍

Less是CSS预处理语言,可以使用变量、嵌套、运算等,便于维护项目CSS样式代码。

2. 安装

2.1 部署node.js环境

官网地址:https://nodejs.org/en/download,软件安装好后,CMD命令窗口输入node -vnpm -v,分别跳出版本号,说明node.js环境安装成功。

2.2 安装Less

采用npm包管理工具,全局安装Less包

npm install -g less

less安装好了,lessc也安装好了

lessc -v

在这里插入图片描述

lessc命令是可以把less文件转成css文件

# 把xx.less文件转成xx.css文件
lessc xx.less xx.css

2.3 WebStorm配置Less

目的:编辑器自动把less文件转成css文件

我这边采用WebStorm编辑器。WebStorm左上角–>files–>Settings–>Tools–>File Watchers–>点击添加
在这里插入图片描述
在这里插入图片描述

://img-blog.csdnimg.cn/0533b6b2bfdb4ac4bafa2ed20af7b379.png)

lessc路径可以通过where lessc命令得到

在这里插入图片描述

css导出参数

# $FileParentDir(less)$ 是获取 less 目录的路径
# $FileDirPathFromParent(less)$ 是获取 less 文件到 less 目录的路径
# $FileNameWithoutExtension$ 是获取 less 文件不带后缀的名字
$FileName$
$FileParentDir$\css\$FileNameWithoutExtension$.css
--source-map

3. Less语法

3.1 变量

变量可以当做普通的变量、选择器变量、属性变量、URL变量、声明变量来使用。

变量定义语法:

@变量名: 值

变量使用语法:

@变量名

变量的作用域

和js中变量的作用域一致


普通变量

less:

@bgColor: #ffffff;.div {background-color: @bgColor;
}

编译后的css:

.div {background-color: #ffffff;
}

选择器变量

less:

@section: div;@{section} {background-color: #000000;
}

解释:

变量作为选择器变量时,变量使用需要加花括号:@{变量名}

编译后的css:

div {background-color: #000000;
}

属性变量

less:

@var: width;div {@{var}: 30px;
}

解释:

变量作为属性变量时,变量使用需要加花括号:@{变量名}

编译后的css:

div {width: 30px;
}

URL变量

less:

@bgImg: "../image/bg_img.png";div {background-image: url("@{bgImg}");
}

解释:

变量作为URL变量时,变量使用需要加花括号:@{变量名}

编译后的css:

div {background-image: url("../image/bg_img.png");
}

声明变量

less:

@fontSize: {font-size: 20px;
}div {@fontSize();
}

编译后的css:

div {font-size: 20px;
}

3.2 嵌套

按照页面的层级结构来定义css

&能指代外层选择器的作用

在这里插入图片描述

根据上面HTML结构嵌套写样式

less:

#banner {.img {width: 100%;}.list {li {a {text-decoration: none;&:hover {color: red;}img {width: 25%;}}}}
}

翻译后的css:

#banner .img {width: 100%;
}
#banner .list li a {text-decoration: none;
}
#banner .list li a:hover {color: red;
}
#banner .list li a img {width: 25%;
}

分析:

对比less和翻译后的css,less结构清晰,更容易进行css样式的维护


3.3 运算

  • 在less文件中,任何数字、颜色或变量都能参与加减乘除运算
  • 对于两个不同单位值之间的运算,运算结果的值会取左边值的单位
  • 两个值之间只有一个值有单位,则运算结果就取该单位

less:

@baseWidth: 1000px;div {height: @baseWidth + 200;
}

翻译后的css:

div {height: 1200px;
}

less:

@baseWidth: 1000px;div {height: @baseWidth - 200;
}

翻译后的css:

div {height: 800px;
}

less:

@baseWidth: 1000px;div {height: @baseWidth * 2;
}

翻译后的css:

div {height: 2000px;
}

less:

// px和vw单位换算
@baseSize: (100vw / 750);div {height: @baseSize * 25;
}

翻译后的css:

div {height: 3.33333333vw;
}

小结:

开发中,本人应用Less的变量、嵌套、运算比较多。其它继承、导入、条件表达式、函数、混合方法等用的少,就不去整理了,用到的时候再看资料了。


http://www.ppmy.cn/news/977574.html

相关文章

mongodb本地连接失败解决方案

启动项目时,本地连接mongodb失败 这个是本地服务没有启动 其实我也挺奇怪,我明明设置的是自动启动 *解决方案一 1.我的电脑-> 管理 2. 服务和应用管理-> 服务 3. 找到mongoDB Server 右键启动 *解决方案二 1. 找到mongodb安装目录&#xff0c…

史上最全的short、int、long、float、double取值范围

史上最全的short、int、long、float、double取值范围 一、分析基本数据类型的特点,最大值和最小值。 1、 基本类型:int 二进制位数:32 包装类:java.lang.Integer 最小值:Integer.MIN_VALUE -2147483648 (-…

Java阶段五Day12

Java阶段五Day12 文章目录 Java阶段五Day12问题解析顺序消息事务消息 Rocket核心概念KeysTags Springboot整合RocketMQ案例使用准备案例环境生产端发送消息消费端(push)异步下单操作Business生产端Order消费端Order-adapter整合 rocketmq消费逻辑步骤获取…

(五)springboot实战——springboot自定义事件的发布和订阅

前言 本节内容我们主要介绍一下springboot自定义事件的发布与订阅功能,一些特定应用场景下使用自定义事件发布功能,能大大降低我们代码的耦合性,使得我们应用程序的扩展更加方便。就本身而言,springboot的事件机制是通过观察者设…

什么是Java的Apache Commons库?

首先,让我们来谈谈字符串处理。你知道吗,有时候我们需要从一段文本中提取出特定的信息,比如提取出一段字符串中的数字。这时候,我们可以使用Apache Commons Lang库中的NumberUtils类。不信?看这里,让我给你…

解决 前端显示后端返回的null值为 1的问题

一 、问题描述 一个产品信息,有一个输入框的数据是后端返回回显出来的 但是后端返回这个字段时候,这个字段为空值,在后端就根本在data中没有返回这个字段任何信息 如返回的data {name : 123,age: 18} 因为age 为空,实际后端返回…

Centos安装postgresql数据库以及postgis扩展的安装

这几天项目上的数据库迁移差点没把我弄死 ,因为项目上的使用的是postgis来处理地理数据 ,而开发环境的数据库以及postgis扩展并不是我安装的。所以在迁移的时候造成了不小的麻烦。记录一下迁移过程中遇到的。下面以Centos操作系统为例 文章目录 卸载post…

uniapp的传参encodeURIComponent和解码decodeURIComponent

跳转页面时传参数&#xff1a; encodeURIComponent 编码 decodeURIComponent 解码 如果是对象则先转json字符串 <view class"goodedList"><view class"list-items" v-for"(v,i) in dataList" :key"i" click"ha…