盒模型(IE,W3C)

W3C盒模型

 

IE盒模型

 

從上圖可以看到 ie 盒子模型的範圍也包括 margin、border、padding、content,和標準 w3c 盒子模型不同的是:

ie 盒子模型的 content 部分包含了 border 和 pading。

兩者的不同體現在width和height上

IE:width=content+padding+border 

W3C:  width=content

   例:一個盒子的 margin 爲 20px,border 爲 1px,padding 爲 10px,content 的寬爲 200px、高爲 50px,

  • 假如用IE模型解釋,那麼這個盒子
  1. 佔據的位置:width: 200+40=240, height: 50+40 = 90
  • 假如用w3c盒子模型,那麼這個盒子
  1. 佔據的位置:width: 200+20+2+40=262, height: 50+20+2+40=112

 

  那應該選擇哪中盒子模型呢?當然是“標準 w3c 盒子模型”了。怎麼樣纔算是選擇了“標準 w3c 盒子模型”呢?

很簡單,就是在網頁的頂部加上 doctype 聲明。假如不加 doctype 聲明,那麼各個瀏覽器會根據自己的行爲去理解網頁,即 ie 瀏覽器會採用 ie 盒子模型去解釋你的盒子,而 ff 會採用標準 w3c 盒子模型解釋你的盒子,所以網頁在不同的瀏覽器中就顯示的不一樣了。反之,假如加上了 doctype 聲明,那麼所有瀏覽器都會採用標準 w3c 盒子模型去解釋你的盒子,網頁就能在各個瀏覽器中顯示一致了

 

 

兼容性處理

box-sizing 屬性允許你以某種方式定義某些元素,以適應指定區域。規定容器元素的最終尺寸計算方式

box-sizing: content-box|border-box|inherit:

content-box: 默認值, 寬度=content+padding+border,設置div的width=100, 就是content的寬度是100,實際寬度,會得到一個比預期大了padding和border的盒子 ==》W3C

border-box: 寬度=content, 設置div的width=100,得到最終寬度爲 100的盒子,padding和border都會在這個盒子裏減去,實際content爲width-padding-border ==> IE

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章