数组的遍历
css中有三种基本定位机制:普通文档流、浮动、定位
static(静态定位)、relative (相对定位)、absolute (绝对定位)、fixed(固定定位)。
静态定位:元素 默认的定位方式,无法通过位置偏移属性(top、bottom、left或right)来改变元素的位置。
相对定位:是普通文档流的一部分,相对于本元素在文档原来出现位置的左上角进行定位,可以通过位置偏移属性改变元素的位置。虽然其移动到其他位置,但该元素仍占据原来未移动时的位置,该元素移动后会导致其覆盖其他的框元素。
.he1 {height: 100px;width: 100px;background-color: rgb(164, 175, 219);}.he2 {position: relative;top: -10px;right: -20px;height: 100px;width: 100px;background-color: rgb(238, 177, 197);}盒子1盒子2
会脱离文档流控制
,始终依据浏览器窗口的左上角来定义自己的显示位置。不管浏览器滚动条如何滚动,也不管浏览器窗口的大小如何变化,该元素都会始终显示在浏览器窗口的固定位置。margin外边距合并有以下原则:
(1)块级元素的垂直相邻外边距会合并,且其垂直相邻外边距合并之后的值为上元素的下外边距和下元素的上外边距的较大值。
(2)行内元素实际上不占上下外边距,行内元素的左右外边距不会合并。
(3)浮动元素的外边距不会合并。
过渡是使元素从一种样式转变为另一种样式时添加的效果,如渐显、渐弱、 动面快慢等
过渡通过以下属性实现:
(1)transition-property属性:规定设置过渡效果的CSS属性的名称。
(2)transition-duration属性:规定完成过渡效果需要多少秒或毫秒。
(3)transition-timing-function属性:规定速度效果的速度曲线。
(4)transition-delay属性:定义过渡效果何时开始。
transform:如:平移、旋转、缩放和倾斜,每个效果都被称为变形函数
TopMainFooter
从下图中我们可以验证上面的两个规则:
为什么要清除浮动
清除浮动的3中方式:
圣杯布局:header、footer定高,left和right定宽,center宽度自适应
headercenterleftright
footer
headerleftcenterright
footer
一栏定宽,一栏自适应
JS的基本数据类型:Undefined、Null、Boolean、Number、String
引用数据类型:Array、Object、Function、Data、RegExp
判断js数据类型的方法:
栈(stack)会自动分配内存空间,会自动释放。堆(heap)动态分配的内存,大小不定也不会自动释放。
基本类型:简单的数据段,存放在栈内存中,占据固定大小的空间。
引用类型:指那些可能由多个值构成的对象,保存在堆内存中,包含引用类型的变量实际上保存的不是变量本身,二十指向该对象的指针
三种方式:
function deepcope(obj) {if (!obj || typeof obj !== 'object') return obj;let newObj = Array.isArray(obj) ? [] : {};for (let key in obj) {newObj[key] = typeof obj === 'object' ? deepcope(obj[key]) : obj[key]}return newObj}let obj = {a: 1,b: {c: 1}}
重排:
通过构造渲染树,将可见DOM节点以及它对应的样式结合起来,计算它们在设备视口(viewport)内的确切位置和大小,这个计算的阶段就是重排。重绘:
我们通过构造渲染树和回流阶段,知道了哪些节点是可见的,以及可见节点的样式和具体的几何信息(位置、大小),那么我们就可以将渲染树的每个节点都转换为屏幕上的实际像素,这个阶段就叫做重绘节点。何时发生重排呢?
回流这一阶段主要是计算节点的位置和几何信息,那么当页面布局和几何信息发生变化的时候,就需要回流。比如以下情况:
如何减少回流与重排呢?
参考博客:https://www.cnblogs.com/wangguoxinyue/p/16253671.html