今天搞一搞box-sizing?

講到box-sizing,首先你要知道什麼是css的盒子模型!
盒子模型有兩種分別是IE的border-box和w3c的content-box.css

圖片描述

圖片描述

看了圖可能你就已經明白了,不過還要繼續,簡單來講:android

標準 w3c 盒子模型的範圍包括 margin、border、padding、content,而且 content 部分不包含其餘部分,border-box則是content包含content,padding,border

W3C的標準Box Model:ios

/*外盒尺寸計算(元素空間尺寸)*/
  Element空間高度 = content height + padding + border + margin
  Element 空間寬度 = content width + padding + border + margin
  /*內盒尺寸計算(元素大小)*/
  Element Height = content height + padding + border (Height爲內容高度)
  Element Width = content width + padding + border (Width爲內容寬度)

IE)傳統下Box Model(IE6如下,不含IE6版本或「QuirksMode下IE5.5+」):web

/*外盒尺寸計算(元素空間尺寸)*/
  Element空間高度 = content Height + margin (Height包含了元素內容寬度,邊框寬度,內距寬度)
  Element空間寬度 = content Width + margin (Width包含了元素內容寬度、邊框寬度、內距寬度)
  /*內盒尺寸計算(元素大小)*/
  Element Height = content Height(Height包含了元素內容寬度,邊框寬度,內距寬度)
  Element Width = content Width(Width包含了元素內容寬度、邊框寬度、內距寬度)

到這基本上你就可以明明白白的了吧?瀏覽器

想想你再佈局的時候有沒有遇到過由於paddingborder致使多列布局打亂了的狀況,明明是想要每行四個元素,可是第四個就是被擠了下去的狀況.佈局

好比三欄佈局來說:ui

<div class="left"></div>
<div class="center"></div>
<div class="right"></div>
    div {
        height: 700px;
        float: left;
    }
    div.left {
        width: 25%;
        background: red;
    }
    div.cent {
        width: 50%;
        box-sizing: border-box;
        /* 如今整個元素,包括填充在內,佔頁面總寬度的50%,全部元素的組合寬度爲100%*/
        background: yellow;
        padding: 0 20px;
        /*加了這個會使盒子內容溢出 可是box-sizing很好的自適應了*/
    }
    div.right {
        width: 25%;
        background: blue;
    }

或者是ul-li結構,每行展現四個元素等等狀況的佈局,巧妙的運用能夠讓代碼更加精簡和優美.spa

最後瀏覽器的兼容性:ie9+,火狐加前綴-moz-,低版本ios和android加-webkit-code

相關文章
相關標籤/搜索