Less知识点整理学习笔记

news2024/11/25 5:41:25

文章目录

    • 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.coloradmin.cn/o/778564.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python爬虫学习笔记(十二)————scrapy案例

目录 1.yield 2.案例:当当网 3.案例:电影天堂 1.yield (1)带有 yield 的函数不再是一个普通函数,而是一个生成器generator,可用于迭代 (2) yield 是一个类似 return 的关键字&am…

《数据分析-JiMuReport07》JiMuReport报表开发-下拉框条数参数调整

JimuReport报表下拉框条数参数调整 {selectSearchPageSize:n} 1.下拉框条数限制 下拉框默认只显示10条记录,如果想要显示更多条数可以通过添加参数实现。 2.参数 selectSearchPageSize参数,设置参数大小 3.效果 可以看到设置的下拉框条数20条已经实现

细说小程序底部标签---【浅入深出系列006】

浅入深出系列总目录在000集 如何0元学微信小程序–【浅入深出系列000】 文章目录 本系列校训学习资源的选择 学习语法的前提底部标签的总概鹅厂的自定义标签官方说明: 先来了解app.json文件tabBar 位于app.json哪里 使用流程要注意的是:配套资源作业&a…

el-popover在原生table中,弹出多个以及内部取消按钮无效问题

问题&#xff1a;当el-popover和原生table同时使用的时候会失效&#xff08;不是el-table) <el-popover placement"bottom" width"500" trigger"click" :key"popover-${item.id}"></el-popover> 解决&#xff1a; :key…

虚拟数字人——NeRF实现实时对话数字人

前言 1.这是一个能实时对话的虚拟数字人demo,使用的是NeRF&#xff08;Neural Radiance Fields&#xff09;&#xff0c;训练方式可以看看我前面的博客。 2.文本转语音是用了VITS语音合成&#xff0c;项目git:https://github.com/jaywalnut310/vits . 3.语言模型是用了新开…

Jenkins从配置到实战(一) - 实现C/C++项目自动化编译

前言 本文章主要介绍了&#xff0c;如何去安装和部署Jenkins&#xff0c;并实现自动拉取项目代码&#xff0c;自动化编译流程。 网站 官网中文网站 下载安装 可以下载这个 安装jenkins前先安装java yum search java|grep jdkyum install java-1.8.0-openjdk 安装jenkins j…

NE555 PWM输出

NE555是一种集成电路&#xff08;IC&#xff09;&#xff0c;通常用于电子电路的各种目的&#xff0c;包括计时器、振荡器等等。 本文介绍搭建NE555电路输出PWM信号&#xff0c;电路如图下&#xff1a; 使用该电路可以输出PWM占空比≥50%波形&#xff0c;仿真波形如下图&#…

20230723在win10的命令行下显示文本文件的内容type

20230723在win10的命令行下显示文本文件的内容type 2023/7/23 20:35 百度搜索&#xff1a;WINDOWS 命令行 打开文本文件 windows命令行读取文件命令-WinFrom控件库|.net开源控件库... 2023年7月14日 linux下,可能会用到cat或都是more命令,windows下可以使用type或more命令 type…

VMware Fusion 14 Tech Preview - 适用于 Arm 的 Windows 11 上的全面 3D 加速

VMware Fusion 14 Tech Preview - 适用于 Arm 的 Windows 11 上的全面 3D 加速 VMware Fusion Tech Preview 2023 请访问原文链接&#xff1a;https://sysin.org/blog/vmware-fusion-14/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xff1a;…

求解包含约束的最优化问题:罚函数法

文章目录 外点罚函数法内点罚函数法罚函数法 vs 拉格朗日乘子法 外点罚函数法 针对包含约束条件的最优化问题&#xff0c;此前介绍的拉格朗日乘子法和KKT条件已经提供一种有效的解决方案。但由于我是从智能优化算法入门运筹优化行业的&#xff0c;所以在遇到这类问题时&#x…

day35-Image Carousel(图片轮播图简易版)

50 天学习 50 个项目 - HTMLCSS and JavaScript day35-Image Carousel&#xff08;图片轮播图简易版&#xff09; 效果 index.html <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport…

93、简述kafka架构设计

kafka架构设计 Consumer Group&#xff1a;消费者组&#xff0c;消费者组内每个消费者负责消费不同分区的数据&#xff0c;提高消费能力。逻辑上的一个订阅者。Topic: 可以理解为一个队列&#xff0c;Topic 将消息分类&#xff0c;生产者和消费者面向的是同一个 Topic。Partiti…

netty组件详解-中

接着之前的博客netty组件详解-上&#xff0c;我们继续深入到源码层面&#xff0c;来探究netty的各个组件和其设计思想&#xff1a; netty内置的通讯模式 我们在编写netty代码时&#xff0c;经常使用NioServerSocketChannel 作为通讯模式。 例如下面的简单netty客户端示例: pri…

Docker迁移默认的/var/lib/docker目录

安装完Docker后&#xff0c;默认存储路径在/var/lib/docker目录&#xff0c;如果服务器挂载的硬盘不是根目录的话&#xff0c;可能会造成资源不够用。这时候就需要迁移docker默认的目录。 1.停止docker服务 systemctl stop docker 复制 2.创建docker新目录 mkdir -p /data…

airtest-selenium 脚本爬取百度热搜标题

目录 1. 前言 2. 爬取标题的脚本 3. 命令行运行 Web 自动化脚本 1&#xff09;python 环境准备 2&#xff09;chrome 与 chromedriver 版本对应 3&#xff09;命令行运行 1. 前言 airtest-selenium是一个基于Python的UI自动化测试框架&#xff0c;它结合了airtest和sele…

【Redis】缓存问题小记

文章目录 1、缓存模型和思路1.1、缓存更新策略1.2、具体实现思路 2、缓存穿透问题2.1、方案分析2.2、缓存空对象实现思路2.3、小总结 3、缓存雪崩4、缓存击穿4.1、方案分析4.1.1、互斥锁4.1.2、逻辑过期4.1.3、方案对比 4.2、互斥锁实现思路4.3、逻辑过期实现思路 1、缓存模型和…

微服务——统一网关Getway

为什么需要网关&#xff1f; 网关的两种实现: 网关Getway——快速入门 步骤一 网关背身也是一个微服务&#xff0c;需要注册到nacos中去 步骤二 成功运行后 可以通过网关进行请求转发到对应服务。 流程如下&#xff1a; 路由断言工厂 网关路由可以配置的东西有如下。 spri…

RocketMQ分布式事务 -> 最终一致性实现

文章目录 前言事务消息场景代码示例订单服务事务日志表TransactionMQProducerOrderTransactionListener业务实现类调用总结 积分服务积分记录表消费者启动消费者监听器增加积分幂等性消费消费异常 前言 分布式事务的问题常在业务与面试中被提及, 近日摸鱼看到这篇文章, 阐述的…

Web前端开发概述(二)

&#x1f60a;Web前端开发概述&#xff08;二&#xff09; &#x1f47b;前言&#x1fa81;前端开发背景&#x1f50d;当下前端开发要求&#x1f526;Web前端开发技术&#x1f3ad;HTML&#x1f3ad;CSS&#x1f3ad;JavaScript&#x1f3ad;HTML DOM&#x1f3ad;BOM&#x1f…

Spring中AOP的通知类型和执行顺序

Spring中AOP的通知类型&#xff1a; Around&#xff1a;环绕通知&#xff0c;此注解标注的通知方法在目标方法前、后都被执行Before&#xff1a;前置通知&#xff0c;此注解标注的通知方法在目标方法前被执行After &#xff1a;后置通知&#xff0c;此注解标注的通知方法在目标…