吃完午餐,來寫一篇比較簡單的文章吧,消化一下吧。css
盒子模型這個名詞來自英文裏面的Box modelmodel。怎麼理解盒子模型呢?我認爲凡是裏面能夠盛裝其餘內容的標籤,咱們均可以稱之爲盒子。例如:div,p,span等等標籤均可以往裏面再添加元素,咱們均可以稱之爲盒子模型,相反例如img,input等等 裏面是沒法盛裝其餘元素,咱們就能稱之爲盒子。html
關於盒子,主要有如下幾個要點:面試
因爲歷史和技術遺留緣由,如今存在的盒子模型主要有兩種:瀏覽器
由上圖咱們能夠清楚的發現,ie盒子和標準盒子之間的區別,整理以下:bash
其實這一點Android就好多了,一家獨大,標準就一套。佈局
ie盒子和標準盒子設計出來確定有其設計出來的意義,衆所周知,現代瀏覽器廣泛使用的都是標準盒子,可是做爲一個Android開發工程師,我不少狀況下 仍是會認同ie盒子的一些標準,那麼是否在開發中必定要用標準盒子呢?首先來看下面一段代碼:動畫
<div class="parent">
<div class="son"></div>
<div class="son2"></div>
</div>
// css
.son {
width: 100px;
height: 100px;
padding: 10px;
margin: 10px;
border: 5px solid blue;
background-color: red;
box-sizing: content-box;
}
.son2 {
width: 100px;
height: 100px;
padding: 10px;
margin: 10px;
border: 5px solid red;
background-color: blue;
box-sizing: border-box;
}
複製代碼
效果以下: spa
box-sizing : content-box|border-box|inherit;設計
即總寬度=margin+border+padding+width3d
**border-box :**設置的width值實際上是除margin外的border+padding+element的總寬度。盒子的width包含border+padding+內容,即ie盒子
inherit: 規定應從父元素繼承 box-sizing 屬性的值
首先咱們在開發的時候常常會遇到這樣的狀況,來看下面一段代碼:
// css
.son {
margin-top: 100px;
width: 100px;
height: 100px;
background-color: red;
}
// html
<div class="parent">
<div class="son"></div>
</div>
複製代碼
.parent {
border-top: 1px solid;
}
複製代碼
效果以下:
這種狀況比較常見,例如ul標籤在Mozilla中默認是有padding值的,而在IE中只有margin有值。針對這種狀況,咱們通常都添加一個:
*{
margin:0;
padding:0;
}
複製代碼
來清除各個元素的默認margin,padding屬性
我看在面試裏面常常考的一個點,我這裏就簡單的畫一下,我以前也用僞類畫過,咱們如今盒子畫一下:
.parent {
width : 0;
height: 0;
border : 100px solid transparent;
border-top : 100px solid red; /*方向本身定義*/
}
複製代碼
效果以下:
一箇中午的時間也寫不了多少文章,可是自從昨天寫完了那篇BFC以後,就總感受要寫一篇文章來介紹一下盒子,正好今天中午不怎麼想睡覺,就寫了出來。 接下來,按照本身制定的軌跡來講,還有變換、動畫、預處理器三個知識點。寫完了就開始從頭至尾複習js了,若是我在複習上面存在有什麼遺漏的知識點,請以評論、私聊的方式聯繫我。