kelin.zrh
kelin.zrh
1.通过设置父标签overflow: auto 2.通过after伪类: {display: block; content: ''; clear: both;}
更方便后期维护修改吧,并且也能让代码意图更明了
px是css中的逻辑像素,和移动端的物理像素之间会有一个比值dpr em是指相对于父元素的大小 rem中的r就是root,也就是相对于root元素的大小(html标签)
1. 首先,在函数外部是无法访问函数内部的变量的。 2. 为了解决上述问题,则引入了闭包。简单来说就是为了能访问函数A内部的变量值,需要在函数A中定义一个其他的函数B,并且将B返回给外部变量,那么外部变量就可以通过B来访问到函数A中的变量了。这就是闭包。 3. 闭包方便访问函数内部的变量,但同时也会导致原来函数A中的变量无法及时销毁,导致内存占用过高。并且如果没有及时销毁的话,也存在内存泄露问题。
1. css盒模型由两个盒子组成,外在的控制是否换行的盒子,以及内在的控制元素内容的盒子。比如:display: inline-block, 则它的外在的盒子就是inline也就是不占据一行,而block则表示内部的元素具有块状特性。所以,display: inline其实就是display: inline-inline的缩写,display: block就是display: block-block的缩写。 2. 每一个内在的盒子有: width/height, padding, border, margin这几个控制盒子大小的属性。其中 width/height控制元素内容大小,padding则控制元素内容到border线内侧距离,border则是元素外围边框大小,而margin则是控制与其他元素的间距,它的背景透明。 3. 对于早期,计算一个元素的占据大小,需要通过width +2* padding + 2*border来计算,css3中提出了box-sizing:border-box,通过这样设置,就可以使元素最终的宽高就是设定的width/height, 浏览器会根据width/height, padding, border的大小来自动调整内部元素的大小。
1. 全局作用域。这个没啥说的,就是在顶层环境中申明的变量都是全局作用域,他们的属性其实都在window对象下面。 2.函数作用域。在函数内部定义的变量都是函数作用域,只能在函数中访问到,当然也可以通过闭包来访问。除此之外,在其他地方是没法访问函数内部的变量的。 3. 局部作用域。es6中新增的特性,弥补了以前只能使用匿名及时运行函数来创建局部变量的缺陷。使用很简单,直接用let来申明变量就行。也可以使用const来申明变量,表明这是常数。 4. 作用域链。要说清这个,需要首先明白javascript的代码运行过程。假设现在有个函数funcA,在该函数内部申明了一个局部变量a,在函数内部又定义了一个函数funcB,在函数B中申明了变量b。如下: function funcA () { let a; function funcB () { let b; } } 当进入funcA时,这时候会把变量a压入当前的作用域A中,并且将作用域A入栈,当进入funcB时,则会把变量b压入当前的作用域B中,并且将作用域B入栈,那么这时候栈中就有了作用域A和作用域B,当在funcB中查找某个变量时,会先从当前的作用域B中查找,如果没有的话,那么就根据栈中的作用域依次往上查找,这就是作用域链。
1. 200:成功。一般用于get,patch方法的返回码,表示资源请求或者更新成功;204:成功,一般用于delete方法的返回码,表示资源删除成功 2. 304:not modified。表示资源未修改,浏览器使用本次缓存资源。 3. 400:请求错误。一般是前端请求数据格式有误; 403:not forbidden,表示没有权限;404则是not found,表示后端没有相关资源。 4. 500:服务器内部运行错误;504:网关错误。一般是网络不稳定导致的。
圣杯布局,双飞翼布局,绝对布局,flex弹性布局