css盒子模型詳解加示例

CSS盒子模型:W3C組織建議把所有的網(wǎng)頁(yè)上的對(duì)象都放在一個(gè)盒子中(在定義盒子寬高的時(shí)候,要考慮到內(nèi)填充,邊框,邊界的存在)
一個(gè)盒子的構(gòu)成:
盒子中的內(nèi)容:content
盒子的邊框:border
盒子邊框與內(nèi)容之間的距離:稱為填充---padding內(nèi)邊距(內(nèi)補(bǔ)?。?br />如果有多個(gè)盒子存在,盒子與盒子之間的距離:稱為邊界---margin,外邊距(外補(bǔ)丁)
整個(gè)盒子模型在網(wǎng)頁(yè)中所占的寬度:左邊界+左邊框+左填充+內(nèi)容+右填充+右邊框+右邊界
CSS盒子模型的屬性:
內(nèi)容屬性:寬=width 高=height
內(nèi)填充屬性(內(nèi)容與邊框之間的距離):padding
外邊距屬性:margin(使用該屬性的時(shí)候注意瀏覽器的兼容性)
內(nèi)填充與邊界的規(guī)則:
如果有四個(gè)參數(shù):表示上右下左,也可以單單指定某個(gè)方向
如果只有一個(gè)參數(shù):表示上右下左
如果有兩個(gè)參數(shù): 第一個(gè)參數(shù)表示上下 第二個(gè)參數(shù)表示左右
如果三個(gè)參數(shù):表示上 左右 下
邊框?qū)傩裕篵order
<style type="text/css">
#bigBox{
width:300px;
height:300px;
background:#F30;
padding:20px 0px 0px 20px;
margin:20px;
}
#smallBox{
width:150px;
height:150px;
background:#6F9;
padding-top:20px;
}
</style>
</head>
<body>
<div id="bigBox">
<div id="smallBox">
小盒子
</div>
</div>
DIV+CSS兩種盒子模型
利用CSS來(lái)布局頁(yè)面布局DIV有點(diǎn)邏輯性!
重點(diǎn)理解盒子模型,標(biāo)準(zhǔn)流和非標(biāo)準(zhǔn)流的區(qū)別,還有定位原理!把這3個(gè)攻破了,就非常簡(jiǎn)單了!多實(shí)踐多參考!
最后就是兼容問(wèn)題了,在實(shí)踐中自然就有經(jīng)驗(yàn)了!這些兼容技巧都是經(jīng)驗(yàn)來(lái)的!
盒子模型有兩種,分別是 IE 盒子模型和標(biāo)準(zhǔn) W3C 盒子模型。他們對(duì)盒子模型的解釋各不相同,
先來(lái)看看我們熟悉的標(biāo)準(zhǔn)盒子模型:
從上圖可以看到標(biāo)準(zhǔn) W3C 盒子模型的范圍包括 margin、border、padding、content,并且 content 部分不包含其他部分。
從上圖可以看到 IE 盒子模型的范圍也包括 margin、border、padding、content,和標(biāo)準(zhǔn) W3C 盒子模型不同的是:IE 盒子模型的 content 部分包含了 border 和 pading。
例:一個(gè)盒子的 margin 為 20px,border 為 1px,padding 為 10px,content 的寬為 200px、高為 50px,如果用標(biāo)準(zhǔn) W3C 盒子模型解釋,那么這個(gè)盒子需要占據(jù)的位置為:寬 20*2+1*2+10*2+200=262px、高 20*2+1*2*10*2+50=112px,盒子的實(shí)際大小為:寬 1*2+10*2+200=222px、高 1*2+10*2+50=72px;如果用IE 盒子模型,那么這個(gè)盒子需要占據(jù)的位置為:寬 20*2+200=240px、高 20*2+50=70px,盒子的實(shí)際大小為:寬 200px、高 50px。
那應(yīng)該選擇哪中盒子模型呢?當(dāng)然是“標(biāo)準(zhǔn) W3C 盒子模型”了。怎么樣才算是選擇了“標(biāo)準(zhǔn) W3C 盒子模型”呢?很簡(jiǎn)單,就是在網(wǎng)頁(yè)的頂部加上 DOCTYPE 聲明。如果不加 DOCTYPE 聲明,那么各個(gè)瀏覽器會(huì)根據(jù)自己的行為去理解網(wǎng)頁(yè),即 IE 瀏覽器會(huì)采用 IE 盒子模型去解釋你的盒子,而 FF 會(huì)采用標(biāo)準(zhǔn) W3C 盒子模型解釋你的盒子,所以網(wǎng)頁(yè)在不同的瀏覽器中就顯示的不一樣了。反之,如果加上了 DOCTYPE 聲明,那么所有瀏覽器都會(huì)采用標(biāo)準(zhǔn) W3C 盒子模型去解釋你的盒子,網(wǎng)頁(yè)就能在各個(gè)瀏覽器中顯示一致了。
再用 jQuery 做的例子來(lái)證實(shí)一下。
代碼1:
<html>
<head>
<title>你用的盒子模型是?</title>
<script language="javascript" src="jquery.min.js"></script>
<script language="javascript">
var sBox = $.boxModel ? "標(biāo)準(zhǔn)W3C":"IE";
document.write("您的頁(yè)面目前支持:"+sBox+"盒子模型");
</script>
</head>
<body>
</body>
</html>
上面的代碼沒(méi)有加上 DOCTYPE 聲明,在 IE 瀏覽器中顯示“IE盒子模型”,在 FF 瀏覽器中顯示“標(biāo)準(zhǔn) W3C 盒子模型”。
代碼2:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "<a >
<html>
<head>
<title>你用的盒子模型是標(biāo)準(zhǔn)W3C盒子模型</title>
<script language="javascript" src="jquery.min.js"></script>
<script language="javascript">
var sBox = $.boxModel ? "標(biāo)準(zhǔn)W3C":"IE";
document.write("您的頁(yè)面目前支持:"+sBox+"盒子模型");
</script>
</head>
<body>
</body>
</html>
代碼2 與代碼1 唯一的不同的就是頂部加了 DOCTYPE 聲明。在所有瀏覽器中都顯示“標(biāo)準(zhǔn) W3C 盒子模型”。
所以為了讓網(wǎng)頁(yè)能兼容各個(gè)瀏覽器,讓我們用標(biāo)準(zhǔn) W3C 盒子模型
相關(guān)文章
- 下面小編就為大家?guī)?lái)一篇深入理解CSS中的盒子模型。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-05-25
- 什么是CSS盒子模型?CSS盒子模型是為了讓我們充分理解div+css模型的定位功能,盒子模型在學(xué)習(xí)div+css布局方式中必須要學(xué)習(xí)的一個(gè)模型2016-05-10
- 這篇文章主要介紹了css盒子模型的使用方法,需要的朋友可以參考下2014-04-22
- 本章將介紹CSS3中各種盒的知識(shí)點(diǎn);主要包含以下內(nèi)容:CSS3中各種各樣盒的類型概念、瀏覽器支持情況2013-04-24
- 本章將介紹CSS3中各種盒的知識(shí)點(diǎn);主要包含以下內(nèi)容:CSS3中各種各樣盒的類型概念、瀏覽器支持情況2013-04-24
詳解css盒子模型之內(nèi)邊距padding及簡(jiǎn)寫
這篇文章主要介紹了詳解css盒子模型之內(nèi)邊距padding及簡(jiǎn)寫,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-10-27