html语义化: 在合适的地方用合适的标签
块极元素:多个元素展示在一行,不可以设置宽高。常用的块极元素:
<span> <a> <i>
行极元素:一个元素展示在一行,可以设置宽高。
<div> <ul> <li> <p> <h1~h6>
css常见的选择器(权重):标签(1)类(10)ID(100)子代选择器(>分开) 后代选择器(空格分开) 分组选择器(逗号分开)
position定位区别:
absolute:绝对定位,根据最近的已定位的祖先元素定位
relative:相对定位,根据自己当前位置定位。
fixed:固定定单位,相对于浏览器窗口定位。
display: none,block,inline,inline-block
none:该元素不会被展示
block:展示为块极元素
inline:展示为行级元素
inline-block:展示为行极块元素
清除浮动:
元素浮动后的缺陷:父元素会塌陷
解决方法(四种):
1.给父元素设置高度
2.父元素设置溢出隐藏: overflow:hidden
3.给父元素内添加最后一个子元素,并在子元素内设置清除浮动 clear:both;
4.clearfix
.clearfix after:{
content:"";
display:block;
clear:both;
}
外边距合并:
js数基本据类型:
number数字,string字符串,null空,undefined未定义,boolean布尔。
js有两种引用数据类型:数组array、对象object。
this指针的几种情况:
1.在函数中,this是Window。
2.在定时器中,this是Window。
3.在对象中,this是当前的对象。
4.在构造函数中,this是实例化的对象。
5.在事件绑定中,this是绑定事件的对象。
改变this的方法有3中:
call()括号里有多个参数,第一个参数是要改变指针的对象,后面的参数是原方法中需要用到的参数。
如 f1.call(oDiv,2,3);
apply()括号里有两个参数,第一个参数是要改变指针的对象,后面的参数是需要用到的参数数组。
如f1.apply(oDiv,[2,3]);
bind(参数)(手动调用需要的括号):参数和call 一样。
如 f1.bind(oDiv,2,3)();
call和bind区别:call自动调用,bind手动调用,需要在后面加()。
闭包的条件:
1.外部函数里有一个内部函数,(函数套函数)。
2.内部函数会使用外部函数的局部变量。
闭包的特点:闭包里的变量不会被垃圾回收机制清理,会一直存在内存里。
缺点:内存会泄露。
优点:可以拿到索引值。
事件冒泡:从里到外
事件捕获:从外到里
既有冒泡又有捕获:先捕获再冒泡。
事件委托: 基于事件冒泡
水平垂直都居中:
div{
background: red;
width:200px;
height:400px;
/* <!--把元素变成定位元素--> */
position:absolute;
/* <!--设置元素的定位位置,距离上、下、左、右都为0--> */
left:0;
right:0;
top:0;
bottom:0;
/* <!--设置元素的margin样式值为 auto--> */
margin:auto;
}
左侧固定右侧自适应:父元素display: flex;左元素固定宽度,右元素自适应flex-glow:1。 自适应:瓜分父元素剩下的大小。
#contain{
width: 100%;
height: 200px;
display: flex;
}
#div1{
height: 100px;
background: pink;
width: 100px;
}
#div2{
height: 100px;
background:blue;
flex-grow: 1
}
弹性盒模型:在父元素上加 display:flex 子元素加flex-grow:(想要占父元素剩下大小几份的具体值) 若反向排序,则需要在父元素加上flex-direction:reverse;
若垂直反向排序,则需要在父元素上加 flex-direction:column-reverse;
justify-content
flex-start:从起始位置对齐。
flex-end:从结束位置对齐。
space-between:第一个元素起始对齐,最后一个元素结束位置对齐,中间的元素在中间平分位置。
space-around:相当于每个元素的外边距相等
常见的html5标签:
cookie :存储大小为4K,可以设置过期时间,如果不设置关闭浏览器窗口就没了。
localStorage :存储大小为5M,会永久的存储在浏览器中 除非手动删除。
sessionStorage :存储大小为5M,浏览器窗口关闭之后就没了。
es6:新特性
1、let生命的变量不存在变量提升。
2、不可以重复声明。
3、新增了一个作用域,块作用域。let声明的变量在块极作用域内。
4、会形成暂时性死区,只能在声明后试用,声明前使用的代码就是暂时性死区。
增加了箭头函数,箭头函数this指针指向父元素。
解构赋值:从数组和对象中提取每个值,对变量进行赋值。数组按照索引下标顺序赋值。 对象按key进行赋值,如果不希望用原来的key作为变量名,可以用:x起别名。
Vue指令:
指令: v-for 循环数组和对象的
v-model绑定在表单元素。 v-bind绑定属性 v-bind:class 简写成 :class v-show 是否展示出来 v-on:绑定事件
生命周期:
beforeCreate()实例创建之前
created()实例创建成功,可以获取到data ,el是 undefined
beforeMount()元素已经挂载上了,但是内容还没有填充进去,会有一个占位
mounted()模版中的 data 数据获取到了
beforeUpdate()数据更改之前,虚拟dom里的内容会更新,真实dom里不会更新
updated()数据更改完成 虚拟dom里的内容会更新,真实dom里也会更新
beforeDestroy() 在 vue 实例销毁之前调用
destroyed() 在 vue 实例销毁之后调用,vue 实例指示的所有东西都会解绑定