css盒模型

css盒子模型是爲了讓咱們充分理解div+css模型的定位功能,盒子模型在學習div+css佈局方式中必需要學習的一個模型。css

那什麼是css盒模型呢?html

  網頁設計中常聽到的屬性名:內容(content)、填充(padding)、邊框(border)、邊界(margin)。css盒模型都具有這些屬性。這些屬性和平常生活中盒子的屬性是同樣的。內容就是盒子裏面裝的東西,而填充就是像盒子裏裝的一些反震的材料,邊框就是箱子的自己,邊界呢就像盒子之間的空隙。瀏覽器

盒子的模型有2種,分別是IE盒子模型標準盒子模型。dom

IE盒子模型佈局

  

 

標準盒子模型學習

 

css如何設置這兩種模型spa

 

瀏覽器默認的方式是content-box(標準模型 ),經過改變樣式box-sizing來切換content-box(標準模型)和border-sizing(IE模型)設計

js如何設置獲取盒模型對應的寬和高code

有4種方式orm

第一種:

  dom.style.width/height

  缺點:只能獲取內聯樣式中的style值。

第二種:

  dom.currentStyle.width/height

  缺點:只能獲取IE瀏覽器下的值。兼容性很差

第三種:

  window.getComputerStyle(dom).width/height

  缺點:只能用來獲取不能用來設置改變值

第四種:

  dom.getBoundingClientRect().width/height

  優勢:可以用dom.getBoundingClientRect()獲取一個矩形對象,其中包括top,left,right,bottom4個屬性,以及返回的注意(IE盒子模型的寬高

說到盒模型這裏不得再也不提到盒模型的邊距重疊。什麼是盒模型的邊距重疊呢

先看個例子

        .content{
           background: red;
        }
        .child{
            background:#007aff;
            height: 100px;
            margin-top: 20px;
        }

如圖所示,父級元素的顏色沒有顯示出來,顯示的高度是100。重點來了如今給父級元素加上一個屬性overflow:hidden。

如圖所示,content的高度變成120了,這就是邊距重疊。能夠理解成加了一個overflow屬性至關於加了一個BFC,具體能夠參考http://www.w3cplus.com/css/understanding-block-formatting-contexts-in-css.html

相關文章
相關標籤/搜索