毕设储备1-前端

前端易忘点归纳(自用版)

一、html5

二、css

1.列表

1.去除无序列表前的小圆点

li{
      list-style: none;
    }

2.阴影(文字和盒子)

描述
h-shadow*水平阴影位置,可负值
v-shadow*垂直阴影位置,可负值
blur模糊距离
spread阴影尺寸(盒子)
inset将阴影改至内部(盒子)
color阴影颜色

3.布局

3.1布局准则

1.多个块级元素纵向排列找标准流,多个块级元素横向排列找浮动
2.先设置盒子大小,之后设置盒子位置

3.2浮动

1.用同一方向浮动一个盒子会紧贴在另一个盒子后面
2.浮动元素会脱离标准流(脱标)
3.浮动的盒子不再保留原先的位置
4.多个盒子都设置了浮动,则他们会按照属性值一行内显示并且顶端对齐排列
5.浮动元素会具有行内块元素的特性
任何元素都可以浮动,不管原先是什么模式的元素,添加浮动之后具有行内块元素相似的特性

  • 块级盒子没设置宽度,默认和父级一样,添加浮动后大小根据内容决定
  • 浮动盒子中间是没有缝隙的,是紧挨一起的
  • 行内元素同理

6.清除浮动
本质:清除浮动元素脱离标准流造成的影响
策略:闭合浮动,只让浮动再父盒子内部影响,不影响父盒子外面的其他盒子
方法:①额外标签法(隔墙法):
②父级添加overflow属性
无法显示溢出部分

/* 给浮动元素父元素添加 */
overflow: hidden;

③父级添加afer伪元素

.clearfix:after{
      content: "";
      display: block;
      height: 0;
      clear: both;
      visibility: hidden;
    }

.clearfix{
      zoom: 1;
    }

④父级添加双伪元素

.clearfix:before,
.clearfix:after{
    content: "";
    display: table;
  }

.clearfix:after{
    clear: both;
  }

.clearfix{
    zoom: 1;
  }

ps:
1.为约束浮动元素位置,一般用标准流父元素排列上下位置,之后内部子元素采取浮动排列左右位置
2.一个元素浮动了,其余兄弟元素也要浮动,浮动的盒子只影响浮动盒子后面的标准流,不会影响前面的标准流
3.浮动的盒子没有外边距合并的问题

4.书写顺序

1.布局定位属性:display/position/float/clear//visibility/overflow
2.自身属性:width/height/margin/padding/border/background
3.文本属性:color/font/text-decoration/text-align/vertical-align/white-space/break-word
4.其他属性:content/cursor/border-radius/box-shadow/text-shadow/background:linear-gradient……

5.定位

定位=定位模式(用于指定一个元素在文档中的定位方式)+边偏移(决定了该元素的最终位置)

5.1定位模式和边偏移
语义是否脱标移动位置
static静态定位不能用边偏移
relative相对定位否(占位)相对于自身
absolute绝对定位是(不占位)带有定位的父级
fixed固定定位是(不占位)浏览器可视区
sticky粘性定位否(占位)浏览器可视区
示例描述
toptop:80px顶端偏移量,定义元素相对于其父元素上边线的距离
bottombottom:80px底端偏移量,定义元素相对于其父元素下边线的距离
leftleft :80px左端偏移量,定义元素相对于其父元素左边线的距离
rightright :80px右端偏移量,定义元素相对于其父元素右边线的距离
5.2相对定位

1.移动位置参照点是自己原来的位置
2.不脱标,继续保留原来的位置,后面的盒子仍然以标准流的方式对待它

5.3绝对定位

1.移动位置参照点是祖先元素的位置
2没有祖先元素/祖先元素没有定位,则以浏览器为准
3.如果祖先元素有定位,则以最近一级有定位祖先元素为参考点移动位置
4.不占有原先祖先的位置

5.4固定定位

元素固定于浏览器可视区的位置
1.移动位置参照点是浏览器的可视窗口
2.不占有原先的位置

5.5子绝父相(常用)

子级是绝对定位的话,父亲要用相对定位
1.自己绝对定位不会占位置,可以放到父盒子的任意一个地方,不影响其他兄弟盒子
2.父盒子需要加定位限制子盒子在父盒子内显示
3.父盒子布局时,需要占位置,只能是相对定位

5.6定位叠放顺序
/* 默认auto,数值越大,盒子越靠上,不能加单位,只有定位有*/
{z-index:1;}

6.字体图标

    /* 字体声明 */
    @font-face {
      font-family: 'icomoon';
      src:  url('fonts/icomoon.eot?kmsz6c');
      src:  url('fonts/icomoon.eot?kmsz6c#iefix') format('embedded-opentype'),
        url('fonts/icomoon.ttf?kmsz6c') format('truetype'),
        url('fonts/icomoon.woff?kmsz6c') format('woff'),
        url('fonts/icomoon.svg?kmsz6c#icomoon') format('svg');
      font-weight: normal;
      font-style: normal;
      font-display: block;
    }

7.鼠标样式

属性值描述
default小白 默认
pointer小手
move移动
text文本
not-allowed禁止
li{cursor: xxx}

8.溢出显示

1.单行

/* 1.如果文字显示不开也必须强制一行内显示 */
white-space: nowrap;
/* 2.溢出部分隐藏 */
overflow: hidden;
/* 3.文字用省略号替代超出部分 */
text-overflow: ellipsis;

2.多行

   {
      overflow: hidden;
      text-overflow: ellipsis;
      /* 弹性伸缩盒子模型展示 */
      display: -webkit-box;
      /* 限制在一个块元素显示的文本的行数 */
      -webkit-line-clamp: 3;
      /* 设置成检索伸缩盒对象的子元素的排列方式 */
      -webkit-box-orient: vertical;
    }

9.属性选择器

选择符简介
E[att]选择具有att属性的E元素
E[att=“val”]选择具有att属性且属性值等于val的E元素
E[att^=“val”]匹配具有att属性且值以val开头的E元素
E[att$=“val”]匹配具有att属性且值以val结尾的E元素
E[att*=“val”]匹配具有att属性且值含有val的E元素

ps:类选择器、属性选择器、伪类选择器,权重为10

10.伪类选择器

属性简介
E :first-child匹配父元素中的第一个E元素
E :last-child匹配父元素中的最后一个E元素
E :nth-child(n)匹配父元素中的第n个E元素

11.过渡

transition: 变化的属性 花费时间 运动曲线 何时开始;

12.flex布局

原理:通过给父盒子添加flex属性,来控制盒子的位置和排列方式

12.1 flex-direction设置主轴方向
属性值说明
row默认值从左到右
row-reverse从右到左
column从上到下
column-reverse从下到上
12.2 justify-content设置主轴上的子元素排列方式

使用这个属性之前要先确定主轴

属性值说明
flex-start默认值 从头部开始 如果主轴是x轴 则从左到右
flex-end从尾部开始排列
center从主轴居中对齐(如果主轴是x轴则水平居中)
space-around平分剩余空间
space-between先两边贴边 在平分剩余空间
12.3 flex-wrap设置子元素是否换行
属性值说明
nowrap默认值,不换行
wrap换行
12.4 align-items设置侧轴上的子元素排列方式(单行)
属性值说明
flex-start从上到下
flex-end从下到上
center挤在一起居中(垂直居中)
stretch拉伸(默认值)
12.5 align-content设置侧轴上的子元素排列方式(多行)
属性值说明
flex-start默认值 在侧轴的头部开始排列
flex-end从侧轴的尾部开始排列
center在侧轴中间显示
space-around子元素在侧轴平分空间
space-between子元素在侧轴先分布在两头,再平分剩余空间
stretch设置子元素高度平分父元素高度

ps:flex-flow是flex-direction和flex-wrap的复合属性

12.6 子项flex属性

控制子元素在父元素中所占份数

12.7 align-self控制子项自己在侧轴上的排列方式
12.8 order定义项目的排列顺序

三、js

1.输入输出内容

	// 输出内容
   	document.write('<h1>我是一级标题</h1>')
    // 控制台打印
    console.log('日志')
    // 输入语句
    prompt('请输入年龄:')
    // alert弹出警示框,输出的展示给用户的
    alert('计算的结果是:')

2.模板字符串

简化字符串拼接

模板字符串 外面用`` 里面${变量名}

3.检测数据类型

typeof(x)/typeof x

4.数组

4.1 查找和修改
arr[下标]
arr[下标] = 新值
4.2 新增
arr.push(x1,x2...) //将一个或多个元素添加到数组的末尾,并返回该数组的新长度
arr.unshift(x1,x2...) //将一个或多个元素添加到数组的开头,并返回该数组的新长度
4.3 删除
arr.pop()//从数组中删除最后一个元素,并返回该元素的值
arr.shift()//删除第一个元素
arr.splice(start,deletCount)//指定位置移除指定个数元素
4.4排序
arr.sort(function(a,b){
	return a-b//升序排列
})
arr.sort(function(a,b){
	return b-a//降序排列
})

5.函数

1.具名函数的调用可以写到任何位置

function fun(){}

2.函数表达式必须先声明函数表达式再调用

let fn = function () {};
fn();

3.立即执行函数必须加分号
4.逻辑与左边为flase则逻辑中断,逻辑或左边为true则逻辑中断
5.’’,0,undefined,null,NaN为假

对象外叫函数,对象内叫方法

6.对象

6.1.对象的声明

对象是一种数据类型,无序的数据集合

let 对象名 = {
	属性名:属性值;
	方法名:函数
}
let 对象名 = new Object()

由属性(特征:尺寸,颜色,重量…)和方法(功能:吃,看电影,打电话)组成

6.2 增删改查
	//查找
	对象名.属性
	//更改
	对象名.属性=新值
	对象名['属性名']
	//添加
	对象名.新属性=新值
	//删除
	delete 对象名.属性
6.3 遍历对象/数组对象
for (let k in obj) {
	console.log(k);
	console.log(obj[k]);
   }
for (let i = 0; i < arr.length; i++) {
   console.log(arr[i].属性名);
   }
6.4 内置对象
方法说明
random生成0-1之间的随机数(包含0但不包含1)
ceil向上取整
floor向下取整
max找最大数
min找最小数
pow幂运算
abs绝对值
//生成N-M之间的随机整数
Math.floor(Math.random()*(M-N+1))+N
6.5 事件对象

1.在绑定事件的回调函数的第一个参数就是事件对象
2.trim方法

字符串.trim()//去除字符串左右的空格
6.6 环境对象

谁调用,this就是谁

6.6 日期对象
	// 1.得到当前时间
    const date = new Date()
    // 2.指定时间
    const date = new Date('具体时间')

时间戳
1.getTime()
2.+new Date()
3.Date.now()

6.7 栈和堆

1.栈:简单数据类型存放到栈里面
2.堆:引用数据类型存放到堆里面

四、APIs

1.DOM元素

1.1 通过css选择器来获取dom元素
//1.获取匹配的第一个元素 可以直接修改
  	const box = document.querySelector('css选择器')
//2.选择匹配的多个元素 得到的是伪数组 通过遍历获取其中内容
	document.querySelectorAll('css选择器')//返回值是css选择器匹配的NodeList对象集合
1.2 查找DOM元素

针对的找亲戚返回的都是对象
①父级:parentNode,获得所有子节点、包括文本节点(空格、换行)、注释节点等
②子级:children,仅获得所有元素节点,返回的是一个伪数组
③兄弟:nextElementSibling、previousElementSibling

1.3 增加DOM元素
//插入到父元素最后
父元素.appendChild(要插入的元素)
//插入到某个子元素前面
父元素.insertBefore(要插入的元素,在哪个元素前面)
//克隆一个已有的元素节点
元素.cloneNode(布尔值)
1.4 删除DOM元素
父元素.removeChild(子元素)
1.5 修改DOM元素

①innerText
将纯文本内容添加/更新到任意标签位置,显示纯文本,不解析标签
①innerHTML
会解析标签,多标签建议使用模板字符

ps:innerHTML得不到表单的内容

1.6 操作元素属性
1.6.1 操作常用属性

href、title、src

1.6.2 操作元素样式属性

①通过style修改样式属性

//修改样式属性 多组单词的采取小驼峰命名 要加单位
对象.style.样式属性='值'

②操作类名(className)修改css

//active是一个类名
元素.className = 'active'

③通过classList修改样式

// 追加类一个类
元素.classList.add('类名')
// 删除一个类
元素.classList.remove('类名')
// 切换一个类
元素.classList.toggle('类名')
// 有没有包含某个类,有则返回true,无则返回false
classList.contains(’类名‘)
1.6.3 操作表单元素属性

只接受布尔值:checked,disabled,selected

1.6.4 自定义属性

标签上一律以data-开头,dom对象上一律以dataset对象方式获取

2.定时器setInterval

setInterval(函数,间隔时间) 函数名不要加小括号

关闭定时器

let 变量名 = setInterval(函数,间隔时间)
clearInterval(变量名)

3.事件注册、解绑

3.1 传统on注册(L0)

①同一个对象,后面注册的事件会覆盖前面注册(同一个事件)
②直接使用null覆盖就可以实现世界肩膀
③冒泡阶段执行

3.2事件监听注册(L2)
元素对象.addEventListener('事件类型',要执行的函数)

①后面注册的事件不会覆盖前面的事件(同一个事件)
②可以通过第三个参数去确定是在冒泡阶段或者捕获阶段执行
③匿名函数无法被解绑,其余解绑方式:

btn.removeEventListener(事件类型, 事件处理函数,获取捕获或者冒泡阶段)
3.1 三要素

①事件源:哪个dom元素被事件触发了,要获取dom元素
②事件类型:用什么方式触发
③事件调用的函数:要做什么事

3.2 事件类型
类型触发条件
鼠标事件click鼠标点击
mouseenter鼠标经过
mouseleave鼠标离开
焦点事件focus获得焦点
blur失去焦点
键盘事件Keydown键盘按下触发
Keyup键盘抬起触发
文本事件Input用户输入事件
页面加载事件监听整个页面,等页面资源加载完再执行回调函数window.addEventListener('load', function () {})
无需等待样式表、图像等完全加载document.addEventListener('DOMContentLoaded', function () {})
页面滚动事件监听整个页面滚动window.addEventListener('scroll', function () {})
页面尺寸事件resize 浏览器窗口大小发生变化的时候触发事件
属性作用说明
scrollTop和scrollLeft被卷去的头部和左侧配合页面滚动来用,可读写
clientWidth和clientHeight获得元素的宽度和高度不包含border,margin,滚动条 ,用于js获取元素大小,只读属性
offsetWidth和offsetHeight获得元素的宽度和高度包含border,padding,滚动条,只读
offsetLeft和offsetTop获取元素距离自己定位父级元素的左、上距离获取元素位置的时候使用,只读

4.事件流

4.1 事件捕获
DOM.addEventListener(事件类型,事件处理函数,是否使用捕获机制)

true:从dom根元素开始执行对应的事件(从外到里)

4.2事件冒泡

false:当一个元素触发事件后,依次向上调用所有父级元素的同名事件
阻止冒泡:

事件对象.stopPropagation()

5.事件委托

①事件委托给父元素
②获得真正触发事件的元素:事件对象.target.tagName

6.阻止元素默认行为

e.preventDefault()

7.定时器

let timer = setTimeout(回调函数,等待的毫秒数)
//清除延时函数
clearTimeout(timer)

8.本地存储

1.localStorage
只能存储字符串数据类型,关闭页面也会存在(手动删除除外),可以多窗口(页面)共享(同一浏览器可以共享)

// 存储方式
localStorage.setItem('key',value)
// 获取方式
localStorage.getItem('key')
// 删除本地存储 只删除名字
localStorage.removeItem('key')
// 修改
localStorage.setItem('已存在的key', new value)

2.sessionStorage
生命周期为关闭浏览器窗口,在同一个窗口(页面)下数据可以共享
3.复杂数据类型

// 转换为JSON数据类型
JSON.stringify(复杂数据类型)
// 将字符串转换为对象
JSON.parse(JSON字符串)

9.map和join

1.map
遍历数组处理数据,返回新的数组,有返回值,forEach没有返回值

数组.map(function (ele, index) {})

2.join
把数组中所有元素转换为一个字符串

10.正则表达式

//定义语法
const 变量名 = /表达式/
//判断是否有符合规则的字符串
regObj.test(被检测的字符串)
//检索(查找)符合规范的字符串
regObj.exec(被检测的字符串)
10.1 元字符

①边界符:表示位置,开头和结尾,必须用什么开头,用什么结尾
②量词:表示重复次数

量词说明
*重复零次或更多次
+重复一次或更多次
?重复零次或一次
{n}出现n次
{n,}大于等于n次
{n,m}大于等于n次且小于等于m

③字符类:

符号说明
[ ]后面的字符串只要包含abc中任意一个字符,都返回true,使用连字符-表示一个范围 ,里面加^表示取反符号
.匹配除换行符之外的任何单个字符

④预定义类

符号说明
\d匹配0-9之间的任一数字
\D匹配所有0-9以外的字符
\w匹配任意的字母、数字、下划线
\W除所有字母、数字、下划线以外的字符
\s匹配空格(包括换行符、制表符、空格符等)
\S匹配非空字符的字符
10.2修饰符

/表达式/修饰符

字符说明
i正则匹配时字母不区分大小写
g匹配所有满足正则表达式的结果

补充:字符串.replace(/正则表达式/,‘替换的文本’)

五、Ajax

优点:
①可以无需刷新页面与服务器端进行通信
②允许你根据用户事件来更新部分页面内容
缺点:
①没有浏览历史,不能回退
②存在跨域问题(同源)
③SEO不友好

六、Vue

1.创建vue实例,初始化渲染的核心步骤

1.准备容器(Vue所管理的范围)
2.引包(开发版本包/生产版本包)
3.创建实例new Vue()
4.添加配置项(el data)=>渲染数据
el:指定挂载点,选择器指定控制的是哪个盒子
data:提供数据

2.插值表达式{{}}

1.使用的数据必须存在(data)
2.支持的是表达式,而非语句
3.不能再标签属性中使用{{}}

3.v-show和v-if

区别:1.v-show底层原理:切换css的display:none来控制显示隐藏,v-if底层原理:根据判断条件控制元素的创建和移除(条件渲染)
2.v-show:频繁切换隐藏的场景,v-if:要么显示,要么隐藏,不频繁切换的场景

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值