less 函数_前端开发:less-gulp如何使用?

2023-10-27

大家好,我来了,本期为大家带来的前端入门知识是”前端开发:less-gulp如何使用?“,有兴趣做前端的朋友,和我一起来看看吧!

主要内容

  1. less
  2. gulp

less和gulp

学习目标

第一节 less上

1.less介绍

是css的预处理语言。除了less,还有scss(sass)、stylus这些预处理语言。

特点:LESS 将 CSS 赋予了动态语言的特性,如 变量, 继承, 运算, 函数. LESS 既可以在 客户端 上运行 (支持IE 6+, Webkit, Firefox),也可以借助Node.js或者Rhino在服务端运行。

2.less编译:

1.安装less命令行工具:

全局安装

使用命令行工具编译less文件

编译在命令窗口

2.卡拉工具

1.安装考拉工具

2.把less文件所在文件夹拖拽到考拉工具中

3.点击编译,然后最小化即可

3.其他编译打包工具

Gulp、webpack

本节作业:

  1. 会使用命令行工具编译less文件
  2. 会使用考拉编译less文件

第二节 less语法

1.变量

Less 中的变量十分强大,可化万物,值得一提的是,其变量是常量 ,所以只能定义一次,不能重复使用。

值变量

/* Less */
      

以 @ 开头 定义变量,并且使用时 直接 键入 @名称。

在平时工作中,我们就可以把 常用的变量 封装到一个文件中,这样利于代码组织维护。

@

选择器变量

让 选择器 变成 动态

/* Less */
      

属性变量

可减少代码书写量

/* Less */
      

url 变量

项目结构改变时,修改其变量即可。

/* Less */
      

声明变量

有点类似于 下面的 混合方法

- 

.

/* Less */
      

变量运算

不得不提的是,Less 的变量运算完全超出我的期望,十分强大。

- 加减法时 以第一个数据的单位为基准

- 乘除法时 注意单位一定要统一

/* Less */
      

变量作用域

一句话理解就是:就近原则,不要跟我提闭包。

/* Less */
      

用变量去定义变量

/* Less */
      

2.嵌套

& 的妙用

& :代表的上一层选择器的名字,此例便是header。

/* Less */
      

媒体查询

在以往的工作中,我们使用 媒体查询,都要把一个元素 分开写

#

Less 提供了一个十分便捷的方式

/* Less */
      

唯一的缺点就是 每一个元素都会编译出自己 @media 声明,并不会合并。

3.混合

不带参数的混合

方法犹如 声明的集合,使用时 直接键入名称即可。

/* Less */
      

默认参数方法

Less 可以使用默认参数,如果 没有传参数,那么将使用默认参数。

@arguments 犹如 JS 中的 arguments 指代的是 全部参数。

传的参数中 必须带着单位。

/* Less */
      

方法的匹配模式:

/* Less */
      

- 第一个参数 `left` 要会找到方法中匹配程度最高的,如果匹配程度相同,将全部选择,并存在着样式覆盖替换。

- 如果匹配的参数 是变量,则将会匹配,如 `@_` 。

方法的命名空间

/* Less */
      

要点:

- 在 CSS 中`>` 选择器,选择的是 儿子元素,就是 必须与父元素 有直接血源的元素。

- 在引入命令空间时,如使用 `>` 选择器,父元素不能加 括号。

- 不得单独使用命名空间的方法 必须先引入命名空间,才能使用 其中方法。

- 子方法 可以使用上一层传进来的方法

方法的条件筛选

Less 没有 if else,可是它有 when

/* Less */
    

要点:

- 比较运算有: > >= = =< <。

- = 代表的是等于

- 除去关键字 true 以外的值都被视为 false

数量不定的参数

如果你希望你的方法接受数量不定的参数,你可以使用... ,犹如 ES6 的扩展运算符。

/* Less */
      

方法使用!important

使用方法 非常简单,在方法名后 加上关键字即可

/* Less */
      

循环方法

Less 并没有提供 for 循环功能,但这也难不倒 聪明的程序员,使用递归去实现

/* Less */
      

4.继承

extend 是 Less 的一个伪类。它可继承 所匹配声明中的全部样式

extend 关键字的使用

/* Less */
      

all 全局搜索替换

使用选择器匹配到的 全部声明

/* Less */
      

5.导入

使用@import可以导入less文件

位置可随意放置,可省略后缀

#

6.函数

判断类型

isnumber

判断给定的值 

Iscolor:判断给定的值 是否 是一个颜色。

Isurl: 判断给定的值 是否 是一个 url

颜色操作

Saturate

数学函数

Ceil:向上取整。
Floor:向下取整。
Percentage:将浮点数转换为百分比字符串。
Round:四舍五入。
Sqrt: 计算一个数的平方根。
Abs:计算数字的绝对值,原样保持单位。
Pow: 计算一个数的乘方。

扩展:

常用的三门语言:Sass、Less 、Stylus

Sass 诞生于 2007 年,Ruby 编写,其语法功能都十分全面,可以说 它完全把 CSS 变
成了一门编程语言。另外 在国内外都很受欢迎,并且它的项目团队很是强大 ,是一款
十分优秀的预处理语言。
Stylus 诞生于 2010 年,来自 Node.js 社区,语法功能也和 Sass 不相伯仲,是一门
十分独特的创新型语言。
Less 诞生于 2009 年,受Sass的影响创建的一个开源项目。 它扩充了 CSS 语言,增加
了诸如变量、混合(mixin)、函数等功能,让 CSS 更易维护、方便制作主题、扩充

本节作业:

  1. 掌握less语法
  2. 练习课堂代码

第三节 gulp上

1.gulp介绍

Gulp.js 是一个自动化构建工具,开发者可以使用它在项目开发过程中自动执行常见任务。Gulp.js 是基于 Node.js 构建的,利用 Node.js 流的威力,你可以快速构建项目

2.安装使用

如果你先前将 gulp 安装到全局环境中了,请执行 npm rm --global gulp 将 gulp 删除再继续以下操作

安装 gulp 命令行工具

只需安装一次

npm install --global gulp-cli

创建项目目录并进入

npx mkdirp my-project
Cd my-project

在项目目录下创建 package.json 文件

npm init

安装 gulp,作为开发时依赖项

npm install --save-dev gulp

创建 gulpfile 文件

利用任何文本编辑器在项目大的根目录下创建一个名为 gulpfile.js 的文件,并在文件中输入以下内容:

function 

测试

在项目根目录下执行 gulp 命令:

gulp

如需运行多个任务(task),可以执行 gulp <task> <othertask>。

本节作业:

安装gulp并运行打包

Gulp语法

1.创建任务:

创建任务

每个 gulp 任务(task)都是一个异步的 JavaScript 函数,此函数是一个可以接收 callback 作为参数的函数,或者是一个返回 stream、promise、event emitter、child process 或 observable (后面会详细讲解) 类型值的函数。

function 

导出任务

任务(tasks)可以是 public(公开) 或 private(私有) 类型的。

公开任务(Public tasks) 从 gulpfile 中被导出(export),可以通过 gulp 命令直接调用。

私有任务(Private tasks) 被设计为在内部使用,通常作为 series() 或 parallel() 组合的组成部分。

一个私有(private)类型的任务(task)在外观和行为上和其他任务(task)是一样的,但是不能够被用户直接调用。如需将一个任务(task)注册为公开(public)类型的,只需从 gulpfile 中导出(export)即可。

const 

组合任务

Gulp 提供了两个强大的组合方法: series() 和 parallel(),允许将多个独立的任务组合为一个更大的操作。这两个方法都可以接受任意数目的任务(task)函数或已经组合的操作。series() 和 parallel() 可以互相嵌套至任意深度。

如果需要让任务(task)按顺序执行,请使用 series() 方法。

对于希望以最大并发来运行的任务(tasks),可以使用 parallel() 方法将它们组合起来。

const 

2.异步执行

gulp 任务(task)规范化了所有这些类型的异步功能。gulp 不再支持同步任务(Synchronous tasks)了。因为同步任务常常会导致难以调试的细微错误,例如忘记从任务(task)中返回 stream。

当你看到 "Did you forget to signal async completion?" 警告时,说明你并未使用前面提到的返回方式。你需要使用 callback 或返回 stream、promise、event emitter、child process、observable 来解决此问题。

1.返回 stream

const 

2.返回 promise

function 

3.使用callback

如果任务(task)不返回任何内容,则必须使用 callback 来指示任务已完成。如需通过 callback 把任务(task)中的错误告知 gulp,请将 Error 作为 callback 的唯一参数。

function 

3.处理文件

gulp 暴露了 src() 和 dest() 方法用于处理计算机上存放的文件。

src() 接受 glob 参数,并从文件系统中读取文件然后生成一个 Node 流(stream)。它将所有匹配的文件读取到内存中并通过流(stream)进行处理。

由 src() 产生的流(stream)应当从任务(task)中返回并发出异步完成的信号,就如 创建任务(task) 文档中所述。

const 

流(stream)所提供的主要的 API 是 .pipe() 方法,用于连接转换流(Transform streams)或可写流(Writable streams)

const 

dest() 接受一个输出目录作为参数,并且它还会产生一个 Node 流(stream),通常作为终止流(terminator stream)。当它接收到通过管道(pipeline)传输的文件时,它会将文件内容及文件属性写入到指定的目录中。

向流(stream)中添加文件

src() 也可以放在管道(pipeline)的中间,以根据给定的 glob 向流(stream)中添加文件。新加入的文件只对后续的转换可用。如果 glob 匹配的文件与之前的有重复,仍然会再次添加文件。

const 

分阶段输出

dest() 可以用在管道(pipeline)中间用于将文件的中间状态写入文件系统。当接收到一个文件时,当前状态的文件将被写入文件系统,文件路径也将被修改以反映输出文件的新位置,然后该文件继续沿着管道(pipeline)传输。

const 

4.文件监控

gulp api 中的 watch() 方法利用文件系统的监控程序(file system watcher)将 globs 与 任务(task) 进行关联。它对匹配 glob 的文件进行监控,如果有文件被修改了就执行关联的任务(task)。如果被执行的任务(task)没有触发 异步完成 信号,它将永远不会再次运行了。

const 

可监控的事件

默认情况下,只要创建、更改或删除文件,文件监控程序就会执行关联的任务(task)。 如果你需要使用不同的事件,你可以在调用 watch() 方法时通过 events 参数进行指定。可用的事件有 'add'、'addDir'、'change'、'unlink'、'unlinkDir'、'ready'、'error'。此外,还有一个 'all' 事件,它表示除 'ready' 和 'error' 之外的所有事件。

const 

初次执行

调用 watch() 之后,关联的任务(task)是不会被立即执行的,而是要等到第一次文件修之后才执行。如需在第一次文件修改之前执行,也就是调用 watch() 之后立即执行,请将 ignoreInitial 参数设置为 false

const 

延迟

文件更改之后,只有经过 200 毫秒的延迟之后,文件监控程序所关联的任务(task)才会被执行。如需调整延迟时间,请为 delay 参数设置一个正整数。

const 

5.常用插件

1.压缩JavaScript文件

安装

2.压缩CSS文件

命令

3.压缩HTML文件

命令:npm install --save-dev gulp-minify-html

4.压缩图片文件

命令

5.合并、重命名

npm 

6.编译less文件

npm install --save-dev gulp-less

7.将es6代码转成es5

npm 

本节作业:

  1. 练习课堂代码
  2. 把以前的写的项目进行打包

好了,本期的Web前端开发知识”前端开发:less-gulp如何使用?“介绍完毕了,对前端开发有兴趣的朋友,关注我,更多内容等你看,我们下期再见!

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

less 函数_前端开发:less-gulp如何使用? 的相关文章

  • 2023年环境工程与生物技术国际会议(CoEEB 2023)

    2023年环境工程与生物技术国际会议 CoEEB 2023 重要信息 会议网址 www coeeb org 会议时间 2023年5月19 21日 召开地点 瑞典斯德哥尔摩 截稿时间 2023年4月1日 录用通知 投稿后2周内 收录检索 EI
  • 爆款视频素材挖掘及去重处理not.3

  • 目录显示变应用程序需要权限的解决方法

    在平日使用电脑的过程中 好多人通常会一些状况 其中最常见的就是目录变应用程序了 许多用户都不确定电脑目录变应用程序打不开怎么办 这种状况不要焦急 下面小编就来给大伙讲一讲电脑目录骤然目录的方法 一起来瞧瞧吧 目录显示变应用程序需要权限的解决
  • Java中word转换pdf(工具类)

    一 使用jscob插件 1 引入jacob jar 2 在JRE中添加jacob 1 19 x64 dll或者jacob 1 19 x86 dll 3 运行代码 import java io File import com jacob ac
  • JAVA操作ES中的BoolQueryBuilder 查询方法

    一 创建es的连接 public TransportClient transportClient Settings settings Settings builder put cluster name elasticsearch build
  • 【学术相关】读研究生,从学会「拒绝」导师开始

    自从进了实验室 自己就一头扎进文献的海洋中 偶尔出来透透气 接触最多的就是课题组的其他难兄难弟和导师 导师 师门之间的种种联系细致而微妙 今天小研和大家谈谈 如何拒绝别人 1 为什么要谈 拒绝 好多研究生都有这样的苦闷 导师经常让我拿东西
  • k8s中蓝绿部署、金丝雀发布、滚动更新

    Kubernetes Ingress 实现蓝绿部署 https blog csdn net ljx1528 article details 108801579 Kubernetes蓝绿部署 金丝雀发布 滚动更新的介绍 金丝雀发布 又称灰度发
  • 探索AI知识:我的思考与实践(ChatGPT)

    探索AI知识 我的思考与实践 ChatGPT 前言 随着人工智能技术的迅速发展 越来越多的人开始探索如何将AI知识 我也是其中之一 通过自己的实践和思考 我总结出了一些成功的经验 现在分享给大家 1 思考 1 1 AI知识方法有哪些 首先
  • 【ROS】完美解决ros-noetic-desktop-full安装速度慢的问题

    答主使用的是Ubuntu18 04 6LTS版本 安装配置ROS环境下载软件包时 sudo apt install ros noetic desktop full 出现下载速度极慢的情况 尝试网上所说的切换为手机热点的方法没什么用处 如果只
  • 利用条件编译预处理命令高效注释C/C++代码

    大段注释代码比较麻烦 本文介绍如何利用条件编译预处理命令高效注释C C 代码 注释代码 使用下面语句即可实现代码的大段注释 如果需要继续使用这些代码 将 if 0 改为 if 1 即可实现 if 0 endif 另一种处理方法 自己这几次的
  • mysql创建新用户并授权

    我们在使用mysql的过程中 经常需要对用户授权 添加 修改 删除 在mysql当中有三种方式实现 分别是 INSERT USER表的方法 CREATE USER的方法 GRANT的方法 今天主要看一下grant方法是如何实现的 分两种情况
  • LeetCode-二叉树的下一个节点

    如果当前节点有右儿子 则右子树中最左侧的节点就是当前节点的后继 比如F的后继是H 如果当前节点没有右儿子 则需要沿着father域一直向上找 找到第一个是其father左儿子的节点 该节点的father就是当前节点的后继 比如当前节点是D
  • Python中数组切片[:2],[1:],[2::-1]

    一维数组 一个参数 a i 返回与该索引相对应的单个元素 两个参数 b a i j i缺省时默认为0 即 a n 代表列表中的第一项到第n项 j缺省时默认为len alist 即a m 代表列表中的第m 1项到最后一项 当i j都缺省时 a
  • 电力系统

    欢迎来到本博客 目前更新 电力系统相关知识 期刊论文 算法 机器学习和人工智能学习 支持 如果觉得博主的文章还不错或者您用得到的话 可以关注一下博主 如果三连收藏支持就更好啦 这就是给予我最大的支持 本文目录如下 目录 1 概述 2 数学模
  • 使用chatGPT + AI 绘图生成自己的专属头像

    案例介绍 微信头像是朋友认识我们时的第一印象 或许是可爱 妖娆 或许是帅气 成熟 还有自然 厚重 调皮 我们都有自己独特的故事 独特的思想 独特的爱好 对于头像当然有着自己独到的设计眼光 接下来请允许我向大家展示如何使用chatGPT AI
  • 手把手教你独立完成毕业设计程序!

    又到一年毕业季 大多数计算机院校的毕业生需要开发出一个小项目来完成自己的毕业设计 大学没认真学 代码不是很会写 有一定基础 那么毕业设计程序的确很让人头疼 很多人开始通过各种方式来获取毕业设计程序代码 自己懂的 其实我们花点时间做出所谓毕业
  • 如何通俗理解设计模式及其思想?

    本文由玉刚说写作平台提供写作赞助 原作者 却把清梅嗅 版权声明 本文版权归微信公众号玉刚说所有 未经许可 不得以任何形式转载 术与道 数据结构 算法 设计模式被认为是程序员必备技能的三叉戟 如果说编程语言的语法特性和业务编码能力是 术 那么
  • 【SSH】~/.ssh/config 基本配置

    Host example com HostName 203 0 113 1 Port 2222 User myusername IdentityFile ssh id rsa 下面是一些常见的配置选项 HostName 指定要连接的远程主机
  • React 4 种状态类型及 N 种状态管理

    React 是一个视图层框架 其核心思想是 UI f state 即 UI 是 state 的投影 state 自上而下流动 整个 React 组件树由 state 驱动 当一个 React 应用程序足够复杂 组件嵌套足够深时 组件树中的状

随机推荐

  • VUE前后分离调起微信支付

    第一步 VUE 需要安装 微信支付模块 npm install weixin js sdk 加入需要引入的模块 import wx from weixin js sdk 第二步 封装 微信支付方法 wexinPay data cb erro
  • ssh实现ubuntu免密登录

    生成公钥和私钥 ssh keygen 按三下ENTER 公私钥默认保存在 ssh 文件夹中 cd ssh 发送公钥给另一台电脑 ssh copy id 用户名 ip 然后通过ssh链接就不需要输入密码了
  • .PLY文件格式剖析(二)

    在很多书上介绍的三维图形数据都是 obj 3ds格式 dxf等格式的 真正讲解如何读取的就只有 obj格式文件的 但是我现在所做的内容 要求从 ply文件中读取初始塞维图形数据 这我就不会了 虽然对 ply文件格式有了了解 Ply文件格式是
  • Android GB28181接入端实时位置订阅和上报之-如何获取当前经纬度

    我们在做Android平台GB28181的时候 其中实时位置 MobilePosition 订阅和上报这块 涉及到实时经纬度的获取 特别是执法记录 车载系统的那个等场景 几乎就是标配 今天主要是分享一段实时获取位置的代码 CameraPub
  • 详解Ubuntu配置VSCode+CMake的C++开发环境

    搬运自详解Ubuntu18 04配置VSCode CMake的C 开发环境 Python技术站 原文写18 04 亲测20 04也能用 学slam十四讲的宝宝可以用这个方法去跑一下里面的代码 本文将会介绍如何在Ubuntu 配置VSCode
  • (一)Python数据类型

    1 字符串 使用单引号 使用双引号 使用三引号 2 布尔类型 bool False bool True 3 整数 int 20 4 浮点数 float 2 3 5 数字 int x base 将x转换为一个整数 float x 将x转换到一
  • C++递推经典案例No.3——爬楼梯的最小代价

    数组的每个下标作为一个阶梯 第 i 个阶梯对应着一个非负数的体力花费值 cost i 下标从 0 开始 每当爬上一个阶梯都要花费对应的体力值 一旦支付了相应的体力值 就可以选择向上爬一个阶梯或者爬两个阶梯 请找出达到楼层顶部的最低花费 在开
  • 信息学奥赛一本通(C++版) 刷题 记录

    总目录详见 https blog csdn net mrcrack article details 86501716 信息学奥赛一本通 C 版 刷题 记录 http ybt ssoier cn 8088 http blog csdn net
  • C++:主要的关联容器类型:map

    目录 1 关联式容器 2 键值对 3 树形结构的关联式容器 4 map的特点 5 使用map 常用接口的使用 1 find 2 insert 3 erase 4 operator 6 multimap 1 关联式容器 与vector lis
  • KEIL - 下载调试出现“TRACE HW not present”

    使用st link调试遇到烧写完成之后不能进入调试状态 提示TRACE HW not present 点击确认 提示错误 Erron target DLL has been cancelled Debugger aborted 解决办法 第
  • 基于springboot开发项目架构之FastDFS

    fastDSF介绍 FastDFS是用c语言编写的一款开源的分布式文件系统 它是由淘宝资深架构师余庆编写并开源 FastDFS专为互联网量身定制 充分考虑了冗余备份 负载均衡 线性扩容等机制 并注重高可用 高性能等指标 使用FastDFS很
  • Centos 7 归档和压缩文件

    1 tar命令进行文件的归档和压缩 1 1归档和压缩 归档和压缩文件的好处 节约硬盘的资源 加快文件传输速率 tar命令的作用就是打包 压缩文件 用法 tar 选项 压缩成文件的名称 源文件名称 例如 tar czvf passwd tar
  • 处理点云数据(六):点云分割

    展示了如何在三维激光雷达数据中检测地平面和发现附近的障碍物 clear clc for img idx 181 446 fid fopen sprintf D KITTI data set 2011 09 26 2011 09 26 dri
  • doris 常用操作收集

    1 bit map索引 原理 用户可以在建表时指定在某些列上创建Bitmap索引 也可以在运行时通过 ALTER TABLE TODO 命令新增Bitmap索引 Bitmap索引是一中特殊的数据库索引技术 其索引使用bit数组 或称bitm
  • 在服务器上部署asp网站,部署asp网站到云服务器

    部署asp网站到云服务器 内容精选 换一换 通常情况下 需要结合客户的实际业务环境和具体需求进行业务改造评估 建议您进行服务咨询 这里仅描述一些通用的策略供您参考 主要分如下几方面进行考虑 业务迁移不管您的业务是否已经上线华为云 业务迁移的
  • Python 正则表达式验证IPv4地址

    1 Simple regex to check for an IP address 0 9 1 3 3 0 9 1 3 2 Accurate regex to check for an IP address allowing leading
  • SecureCRT 从安装到当成串口简单使用的教程:

    目录 1 安装 SecureCRT 9 2安装与激活教程 哔哩哔哩 bilibili 看这个视频教程 里面置顶的评论里有安装包 2 配置串口 选择这个 Port会自动的识别出来你的端口 如果没有 就查驱动 然后这里什么都不要选 3 配置显示
  • publish.vue?02fe:77 Uncaught (in promise) TypeError: _api_edu_course__WEBPACK_IMPORTED_MODULE_0__.de

    前端Vue点击事件后没反应 数据库数据未更新 后端未报错 然后发现控制台报错如下 Uncaught in promise TypeError api edu course WEBPACK IMPORTED MODULE 0 default
  • 读取jar文件内容

    一 SpringBoot项目打包成jar后读取文件的大坑 使用ClassPathResource获取classpath下文件失败 java io FileNotFoundException class path resource World
  • less 函数_前端开发:less-gulp如何使用?

    大家好 我来了 本期为大家带来的前端入门知识是 前端开发 less gulp如何使用 有兴趣做前端的朋友 和我一起来看看吧 主要内容 less gulp less和gulp 学习目标 第一节 less上 1 less介绍 是css的预处理语