盒模型分爲兩類: 普通盒模型(box-sizing: content-box
), 怪異盒模型(box-sizing: border-box
).
普通盒模型和怪異盒模型的區別就是 設置width, height
的時候是給什麼區域設置的. eg:segmentfault
content-box
設置width:100px; height:100px;
那麼不管你怎麼更改border padding
的值,都不會影響到內容區的值.換句話說, 你設置padding 和 border值時候,會改變盒子的總尺寸
border-box(邊框盒子)
相對於上面的,這個更好理解.字面意思: 給盒子設置width
和height
的時候設置的是盒子的總尺寸, 那麼這時候你再去改變border padding
值,就會影響到內容區content的尺寸.
如今說說你們都懂的inline, block, inline-block的特性, 但每每忘記在哪使用, 或者是知道在哪用可是沒注意到爲何這麼用瀏覽器
行內元素要居中的時候, 得給父元素設置text-align:center;
行內元素也有細分的:有興趣的同窗能夠看看佈局
一個個敲嗎?hmmm,能夠試試用margin
,寬度不能設置,那就用margin外邊距 把別的元素頂開margin-top
, margin-bottom
不會生效. 要注意的是這個padding
, 他是會"生效"的 可是不會影響上下的佈局. 這裏說的"生效"意思是: 若是你給span
設置一個background-color
會發現背景顏色會衍生到另外一行,可是並不對擠開別的元素(換句話說就是不會影響佈局,不佔位置)便籤之間的空格解析:
這個也挺頭疼的,那怎麼去除便籤間的空格解析呢?
咱們能夠給父元素設置font-size:0;
,可是這麼作的話就得給子元素從新設置font-size
值, 由於這個屬性是能夠繼承的.spa
咱們還可使用margin:負值
值去調節.這個比改變font-size
靠譜多了.調試
相對來講inline-block 會比上面那兩個用的多一點. 畢竟還沒學float position
的時候,仍是要靠inline-block
佈局的.code
width height
至關因而上面的盒模型margin:0 auto
,那有些同窗想要居中的話怎麼辦???? 這時候用到的是inline的性質,給父元素設置一個text-align: center
(說下怎麼去理解這個margin: auto 不生效, 行內元素的話是由多個的行內元素組成,auto廣泛是100%的意思,block
使用的時候左右兩邊100%就是居中, 可是多個行內元素auto到中間互相擠兌就放不下,因此不能用也無效)不去設置內容的話就能夠由裏面的元素撐開,還在頭疼每次作小demo(案例)的時候,由於1px,2px的測量偏差,致使內容換行 或者是要用調試臺去調的剛恰好?繼承
這時候能夠用寬高由內容撐開.給最外面的大盒子先設置成display:inline-block.而後只管往裏面放你須要的元素tag/element
,設置margin
padding
值,最外面的大盒子總會被撐開的. 全弄完了以後就能夠打開調試臺,看看你這個盒子多大, 而後設置固定的width
值 或者是改回display:block
圖片
那麼block
,inline-block
的height
也是由內容撐開所以一樣也能夠先不設置(-->這裏圖文並茂)element