CSS3 box-sizing
從屬性的名稱來看它是與盒模型是相關的,事實也是如此。
一.盒模型介紹:
盒模型分為兩種:
(1).符合w3c標準的盒模型。
(2).怪異模式下的盒模型。
1.w3c標準的盒模型:
此種盒模型規則:
(1).佔據的實際寬度:width+padding+border+margin。
(2).佔據的實際高度:height+padding+border+margin。
圖示如下:
從上面的圖示可以看出,在標準盒模型下,width屬性純粹是用來規定內容區域的,並不包含padding和border。
2.怪異模式下的盒模型:
此種盒模型規則:
(1).佔據的實際寬度:width+margin。
(2).佔據的實際高度:height+margin。
圖示如下:
上面是怪異模式下的盒模型,width屬性所規定的尺寸包含border、padding和content。
二.box-sizing的用法:
簡單的說,box-sizing屬性用來規定使用哪種盒模型。
語法結構:
[CSS] 純文字檢視 複製程式碼box-sizing :content-box || border-box || inherit
(1).如果屬性值是content-box,那麼將採用標準盒模型。
(2).如果屬性值是border-box,那麼將採用怪異模式盒模型。
(3).如果屬性值是inherit,那麼將採用繼承方式。
三.程式碼例項:
通過一個程式碼例項介紹一下box-sizing屬性的應用,更為靈活的應用需要自己在程式碼中不斷積累。
首先看一段程式碼例項:
[HTML] 純文字檢視 複製程式碼執行程式碼<!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style type="text/css"> #box{ width:600px; height:500px; background:black; } .left{ width:100px; height:200px; background:red; float:left } .right{ width:500px; height:200px; background:blue; float:left; } </style> </head> <body> <div id="box"> <div class="left"></div> <div class="right"></div> </div> </body> </html>
以上程式碼中,有一個box容器和兩個子div,由於精確設定了左右兩個子div的寬度,恰好和box容器寬度相同,且採用浮動,所以兩個子div可以水平排列。但是在實際應用中可能需求發生變化,需要給子div新增border或者padding,程式碼修改如下:
[HTML] 純文字檢視 複製程式碼執行程式碼<!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style type="text/css"> #box{ width:600px; height:500px; background:black; } .left{ width:100px; height:200px; background:red; float:left } .right{ width:500px; height:200px; background:blue; float:left; } #box div{ border:5px solid green; } </style> </head> <body> <div id="box"> <div class="left"></div> <div class="right"></div> </div> </body> </html>
在預設狀態下采用的標準盒模型,所以兩個子div設定邊框之後,總寬度超過父元素,會導致換行;要避免這種情況,可以採用修改兩個子div的width屬性值的方式,不過box-sizing屬性可以使我們更為便利的消除此種問題。
程式碼修改如下:
[HTML] 純文字檢視 複製程式碼執行程式碼<!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style type="text/css"> #box{ width:600px; height:500px; background:black; } .left{ width:100px; height:200px; background:red; float:left } .right{ width:500px; height:200px; background:blue; float:left; } #box div{ border:5px solid green; box-sizing:border-box; } </style> </head> <body> <div id="box"> <div class="left"></div> <div class="right"></div> </div> </body> </html>
以上程式碼實現了我們的要求,只要應用box-sizing:border-box即可。
四.瀏覽器相容:
IE8和IE8以上瀏覽器和其他標準瀏覽器支援此屬性。
相關文章
- CSS3乾貨21:box-sizingCSSS3
- CSS box-sizingCSS
- box-sizing屬性
- box-sizing的相關屬性
- css box-sizing屬性值詳解(MDN)CSS
- 使用Bootstrap v3.3.4注意細節box-sizingboot
- CSS3CSSS3
- CSS3簡明教程之初識CSS3CSSS3
- css3省略……CSSS3
- CSS3 quotesCSSS3
- CSS3 TransitionCSSS3
- CSS3 rotate()CSSS3
- CSS3 clipCSSS3
- CSS3 @supportsCSSS3
- CSS3 currentColorCSSS3
- CSS3 vmaxCSSS3
- CSS3 vminCSSS3
- CSS3 vhCSSS3
- CSS3 vwCSSS3
- CSS3 remCSSS3REM
- CSS3 attr()CSSS3
- CSS3 orderCSSS3
- CSS3 columnsCSSS3
- CSS3 counter()CSSS3
- CSS3動畫CSSS3動畫
- csss中box-sizing的問題 元素在另一個元素中框框包含的問題CSS
- CSS3筆記CSSS3筆記
- CSS3 動畫解析CSSS3動畫
- CSS3初識CSSS3
- CSS3 animation 動畫CSSS3動畫
- css3 漸變CSSS3
- CSS3 @keyframesCSSS3
- css3 新特性CSSS3
- CSS3 七 字型CSSS3
- CSS3 之 flexCSSS3Flex
- css3動畫整理CSSS3動畫
- css3漸變CSSS3
- CSS3過渡CSSS3