首頁 >web前端 >js教程 >Boostrap入門準備之border box_javascript技巧

Boostrap入門準備之border box_javascript技巧

WBOY
WBOY原創
2016-05-16 15:01:282032瀏覽

之前在學習Bootstrap的過程中,遇到各種奇葩的坑,如果在學習bootstrap之前,準備工作先做好,就可以或多或少的避開一些坑。下面小編開始跟大家介紹border-box這個屬性的知識。

在Boostrap附的css檔:boostrap.css中,有這樣一段程式碼:

* { 
-webkit-box-sizing: border-box; 
-moz-box-sizing: border-box; 
box-sizing: border-box; 
} 

這表示在寫程式碼時,這個屬性將無所不在。那這個box-sizing:boder-box究竟是什麼鬼呢?讓我們先來看看一段很普通的程式碼:

<div class="outer" style="width:500px; height:500px; padding:100px; border:1px solid #000; background-color: yellow; "> 
<div class="inner" style="width:100%; height:100%; background-color:pink;"></div> 
</div> 

運行程式碼得出:outer的高度為702px,寬度為702px,inner的寬度為500px,高度為500px;這裡大家應該都沒什麼疑問吧,我們現在看看另外一段程式碼:

* { 
-webkit-box-sizing: border-box; 
-moz-box-sizing: border-box; 
box-sizing: border-box; 
} 
<div class="outer" style="width:500px; height:500px; padding:100px; border:1px solid #000; background-color: yellow; "> 
<div class="inner" style="width:100%; height:100%; background-color:pink;"></div> 
</div> 

這段程式碼其實就是前兩段程式碼的相加,可以簡單的理解為現在是在Boostrap的框架中開始寫程式碼,程式碼運行的結果為:outer的寬度為500px,高度為500px;inner的寬高為298px;

導致這樣的結果的原因是:box-sizing:border-box使得元素的寬高不會受padding和border的影響,如上面的程式碼,即使outer有padding,border,但是padding和border都不會影響outer的寬高,outer的寬高還是500px;但是padding和border跑哪裡去了?答案:跑到裡面去了!開啟瀏覽器的調試工具,看outer的樣式詳情:

我們可以明顯的看到,padding和border都是有效的,只是它們佔據了outer的內部空間,由於padding:100px佔據了outer的200px寬高值,border佔據了2px的寬高值,所以inner只能獲得298px的寬高值。

如果大家有ie下的網頁開發經驗的話,就會發現,box-sizing:border-box就是低版本ie的怪異模式。

以上所述是小編跟大家介紹的Boostrap入門準備之border box的相關知識,大家都學會了嗎,如果有疑問歡迎給我留言,小編會及時回覆大家的。同時也非常感謝大家對腳本之家網站的支持!

下面要跟大家介紹box-sizing border-box 的理解

-webkit-box-sizing: border-box; 則div 設定的寬高將包含 邊框及 padding

<!DOCTYPE html>
<html>
<head>
<title>box-sizing</title>
<style type="text/css">
.testdiv{
padding: 10px;;
width:100px;
border: 10px solid
}
</style>
</head>
<body >
<div class="testdiv" > 普通</div>
<div class="testdiv" style=" -webkit-box-sizing: border-box;">
特殊
</div>
</body>
</html>
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn