主要内容
lessgulp学习目标
第一节less上
1.less介绍
是css的预处理语言。除了less,还有scss(sass)、stylus这些预处理语言。
特点:LESS将CSS赋予了动态语言的特性,如变量,继承,运算,函数.LESS既可以在客户端上运行(支持IE6+,Webkit,Firefox),也可以借助Node.js或者Rhino在服务端运行。
2.less编译:
1.安装less命令行工具:
使用命令行工具编译less文件
2.卡拉工具
安装考拉工具把less文件所在文件夹拖拽到考拉工具中点击编译,然后最小化即可3.其他编译打包工具
Gulp、webpack
本节作业:
会使用命令行工具编译less文件会使用考拉编译less文件第二节less语法
1.变量
Less中的变量十分强大,可化万物,值得一提的是,其变量是常量,所以只能定义一次,不能重复使用。
值变量
以
开头定义变量,并且使用时直接键入名称。在平时工作中,我们就可以把常用的变量封装到一个文件中,这样利于代码组织维护。
选择器变量
让选择器变成动态
属性变量
可减少代码书写量
url变量
项目结构改变时,修改其变量即可。
声明变量
有点类似于下面的混合方法
变量运算
不得不提的是,Less的变量运算完全超出我的期望,十分强大。
-加减法时以第一个数据的单位为基准
-乘除法时注意单位一定要统一
变量作用域
一句话理解就是:就近原则,不要跟我提闭包。
用变量去定义变量
2.嵌套
的妙用
:代表的上一层选择器的名字,此例便是header。
媒体查询
在以往的工作中,我们使用媒体查询,都要把一个元素分开写
Less提供了一个十分便捷的方式
唯一的缺点就是每一个元素都会编译出自己
media声明,并不会合并。3.混合
不带参数的混合
方法犹如声明的集合,使用时直接键入名称即可。
默认参数方法
Less可以使用默认参数,如果没有传参数,那么将使用默认参数。
arguments犹如JS中的arguments指代的是全部参数。传的参数中必须带着单位。
方法的匹配模式:
-第一个参数`left`要会找到方法中匹配程度最高的,如果匹配程度相同,将全部选择,并存在着样式覆盖替换。
-如果匹配的参数是变量,则将会匹配,如`
_`。方法的命名空间
要点:
-在CSS中``选择器,选择的是儿子元素,就是必须与父元素有直接血源的元素。
-在引入命令空间时,如使用``选择器,父元素不能加括号。
-不得单独使用命名空间的方法必须先引入命名空间,才能使用其中方法。
-子方法可以使用上一层传进来的方法
方法的条件筛选
Less没有ifelse,可是它有when
要点:
-比较运算有:===。
-=代表的是等于
-除去关键字true以外的值都被视为false
数量不定的参数
如果你希望你的方法接受数量不定的参数,你可以使用...,犹如ES6的扩展运算符。
方法使用!important
使用方法非常简单,在方法名后加上关键字即可
循环方法
Less并没有提供for循环功能,但这也难不倒聪明的程序员,使用递归去实现
4.继承
extend是Less的一个伪类。它可继承所匹配声明中的全部样式
extend关键字的使用
all全局搜索替换
使用选择器匹配到的全部声明
5.导入
使用
import可以导入less文件位置可随意放置,可省略后缀
6.函数
判断类型
isnumber
Iscolor:判断给定的值是否是一个颜色。
Isurl:判断给定的值是否是一个url
颜色操作
数学函数
扩展:
常用的三门语言:Sass、Less、Stylus
本节作业:
掌握less语法练习课堂代码第三节gulp上
1.gulp介绍
Gulp.js是一个自动化构建工具,开发者可以使用它在项目开发过程中自动执行常见任务。Gulp.js是基于Node.js构建的,利用Node.js流的威力,你可以快速构建项目
2.安装使用
如果你先前将gulp安装到全局环境中了,请执行npmrm--globalgulp将gulp删除再继续以下操作
安装gulp命令行工具
只需安装一次
创建项目目录并进入
在项目目录下创建package.json文件
安装gulp,作为开发时依赖项
创建gulpfile文件
利用任何文本编辑器在项目大的根目录下创建一个名为gulpfile.js的文件,并在文件中输入以下内容:
测试
在项目根目录下执行gulp命令:
如需运行多个任务(task),可以执行gulptaskothertask。
本节作业:
安装gulp并运行打包
第四节Gulp语法
1.创建任务:
创建任务
每个gulp任务(task)都是一个异步的JavaScript函数,此函数是一个可以接收callback作为参数的函数,或者是一个返回stream、promise、eventemitter、childprocess或observable(后面会详细讲解)类型值的函数。
导出任务
任务(tasks)可以是public(公开)或private(私有)类型的。
公开任务(Publictasks)从gulpfile中被导出(export),可以通过gulp命令直接调用。
私有任务(Privatetasks)被设计为在内部使用,通常作为series()或parallel()组合的组成部分。
一个私有(private)类型的任务(task)在外观和行为上和其他任务(task)是一样的,但是不能够被用户直接调用。如需将一个任务(task)注册为公开(public)类型的,只需从gulpfile中导出(export)即可。
组合任务
Gulp提供了两个强大的组合方法:series()和parallel(),允许将多个独立的任务组合为一个更大的操作。这两个方法都可以接受任意数目的任务(task)函数或已经组合的操作。series()和parallel()可以互相嵌套至任意深度。
如果需要让任务(task)按顺序执行,请使用series()方法。
对于希望以最大并发来运行的任务(tasks),可以使用parallel()方法将它们组合起来。
2.异步执行
gulp任务(task)规范化了所有这些类型的异步功能。gulp不再支持同步任务(Synchronoustasks)了。因为同步任务常常会导致难以调试的细微错误,例如忘记从任务(task)中返回stream。
当你看到Didyouforgettosignalasync