整理中高級前端系列,能夠看成面試複習,也能夠看成實戰來看,分享一下 方便本身,方便他人。有不足的地方歡迎評論~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…
同窗以爲有幫助的能夠點個贊,以示鼓勵~ 😊