整理中高级前端系列,能够看成面试复习,也能够看成实战来看,分享一下 方便本身,方便他人。有不足的地方欢迎评论~javascript
第一趴:css进阶css
第二趴:js进阶html
第四趴:工程化vue
诞生原因:默认盒模型实际占用空间为: margin+border+padding+width(height)
这种计算方式很是不方便,好比:对于非px为单位的宽高设置:java
.div {
width:50%;
border: 1px solid #ccc;
}
复制代码
咱们想要宽度为50%,但实际大小倒是 50%+2px......web
所以box-sizing有两个经常使用值:content-box标准盒模型和border-box怪异盒模型面试
特色bash
text-align
属性来决定;vertical-align
控制,默认对齐为 baseline
;border
,padding
与 margin
都不会撑开行盒的高度。**问题1:**item之间会产生水平间隙,是由于换行产生空白符。两种解决方案:框架
问题2: 通常为了不这个垂直的间隙,在设置 inline-block 的时候,还须要顺手带个 vertical-align: middle;
都是为了实现一个两侧宽度固定,中间宽度自适应的三栏布局。
<div id="container">
<div id="center" class="column"></div>
<div id="left" class="column"></div>
<div id="right" class="column"></div>
</div>
// 主设置 padding
#container {
padding-left: 200px;
padding-right: 150px;
}
#container .column {
float: left;
}
#center {
width: 100%; // 能作到自适应的关键
}
#left {
width: 200px; // 固定宽度
margin-left: -100%;
position: relative;
right: 200px;
}
#right {
width: 150px; // 固定宽度
margin-right: -150px;
}
复制代码
双飞翼布局的DOM结构与圣杯布局的区别是用container
仅包裹住center
,另外将.column
类从center
移至container
上。
<div id="container" class="column">
<div id="center"></div>
</div>
<div id="left" class="column"></div>
<div id="right" class="column"></div>
.container {
width: 100%;
}
.center {
margin-left: 200px;
margin-right: 300px;
}
.cloumn {
float: left;
}
.left {
margin-left: -100%;
width: 200px;
background-color: blue;
}
.right {
margin-left: -300px;
background-color: red;
width: 300px;
}
复制代码
不肯定多少的列表展现,最后一行须要左对齐的时候,解决方案:
.list:after {
content: "";
flex: auto;
}
复制代码
以上五步里面,1-3都很是快,4-5是最耗时的。
生成布局(flow)和绘制(paint)这两步,合称为 渲染(render)
如下三种状况会致使网页的从新渲染,此时就须要从新 布局和绘制
重绘:全部对页面视觉表现属性的修改,好比:背景色、文字颜色。 重排:修改布局必然致使重绘,好比:DOM操做、元素大小、间距等。
详情可查看::www.ruanyifeng.com/blog/2015/0…
同窗以为有帮助的能够点个赞,以示鼓励~ 😊