DIV+CSS兩種盒子模型DIV+CSS兩種盒子模型

來源:互聯網
上載者:User
DIV+CSS兩種盒子模型

         利用CSS來布局頁面配置DIV有點邏輯性!
重點理解盒子模型,標準流和非標準流的區別,還有定位原理!把這3個攻破了,就非常簡單了!多實踐多參考!
最後就是相容問題了,在實踐中自然就有經驗了!這些相容技巧都是經驗來的!

 

       盒子模型有兩種,分別是 IE 盒子模型和標準 W3C 盒子模型。他們對盒子模型的解釋各不相同,

先來看看我們熟悉的標準盒子模型:

   

 

 

 

  圖片看不清楚?請點擊這裡查看原圖(大圖)。

  從可以看到標準 W3C 盒子模型的範圍包括 margin、border、padding、content,並且 content 部分不包含其他部分。 

 

 

  圖片看不清楚?請點擊這裡查看原圖(大圖)。

  從可以看到 IE 盒子模型的範圍也包括 margin、border、padding、content,和標準 W3C 盒子模型不同的是:IE 盒子模型的 content 部分包含了 border 和 pading。

  例:一個盒子的 margin 為 20px,border 為 1px,padding 為 10px,content 的寬為 200px、高為 50px,如果用標準 W3C 盒子模型解釋,那麼這個盒子需要佔據的位置為:寬 20*2+1*2+10*2+200=262px、高 20*2+1*2*10*2+50=112px,盒子的實際大小為:寬 1*2+10*2+200=222px、高 1*2+10*2+50=72px;如果用IE 盒子模型,那麼這個盒子需要佔據的位置為:寬 20*2+200=240px、高 20*2+50=70px,盒子的實際大小為:寬 200px、高 50px。

  那應該選擇哪中盒子模型呢?當然是“標準 W3C 盒子模型”了。怎麼樣才算是選擇了“標準 W3C 盒子模型”呢?很簡單,就是在網頁的頂部加上 DOCTYPE 聲明。如果不加 DOCTYPE 聲明,那麼各個瀏覽器會根據自己的行為去理解網頁,即 IE 瀏覽器會採用 IE 盒子模型去解釋你的盒子,而 FF 會採用標準 W3C 盒子模型解釋你的盒子,所以網頁在不同的瀏覽器中就顯示的不一樣了。反之,如果加上了 DOCTYPE 聲明,那麼所有瀏覽器都會採用標準 W3C 盒子模型去解釋你的盒子,網頁就能在各個瀏覽器中顯示一致了。

  再用 jQuery 做的例子來證實一下。

  代碼1:

<html>
<head>
<title>你用的盒子模型是?</title>
<script language="javascript" src="jquery.min.js"></script>
<script language="javascript">
var sBox = $.boxModel ? "標準W3C":"IE";
document.write("您的頁面目前支援:"+sBox+"盒子模型");
</script>
</head>
<body>
</body>
</html>

  上面的代碼沒有加上 DOCTYPE 聲明,在 IE 瀏覽器中顯示“IE盒子模型”,在 FF 瀏覽器中顯示“標準 W3C 盒子模型”。

  代碼2:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>你用的盒子模型是標準W3C盒子模型</title>
<script language="javascript" src="jquery.min.js"></script>
<script language="javascript">
var sBox = $.boxModel ? "標準W3C":"IE";
document.write("您的頁面目前支援:"+sBox+"盒子模型");
</script>
</head>
<body>
</body>
</html>

  代碼2 與代碼1 唯一的不同的就是頂部加了 DOCTYPE 聲明。在所有瀏覽器中都顯示“標準 W3C 盒子模型”。

  所以為了讓網頁能相容各個瀏覽器,讓我們用標準 W3C 盒子模型

         利用CSS來布局頁面配置DIV有點邏輯性!
重點理解盒子模型,標準流和非標準流的區別,還有定位原理!把這3個攻破了,就非常簡單了!多實踐多參考!
最後就是相容問題了,在實踐中自然就有經驗了!這些相容技巧都是經驗來的!

 

       盒子模型有兩種,分別是 IE 盒子模型和標準 W3C 盒子模型。他們對盒子模型的解釋各不相同,

先來看看我們熟悉的標準盒子模型:

   

 

 

 

  圖片看不清楚?請點擊這裡查看原圖(大圖)。

  從可以看到標準 W3C 盒子模型的範圍包括 margin、border、padding、content,並且 content 部分不包含其他部分。 

 

 

  圖片看不清楚?請點擊這裡查看原圖(大圖)。

  從可以看到 IE 盒子模型的範圍也包括 margin、border、padding、content,和標準 W3C 盒子模型不同的是:IE 盒子模型的 content 部分包含了 border 和 pading。

  例:一個盒子的 margin 為 20px,border 為 1px,padding 為 10px,content 的寬為 200px、高為 50px,如果用標準 W3C 盒子模型解釋,那麼這個盒子需要佔據的位置為:寬 20*2+1*2+10*2+200=262px、高 20*2+1*2*10*2+50=112px,盒子的實際大小為:寬 1*2+10*2+200=222px、高 1*2+10*2+50=72px;如果用IE 盒子模型,那麼這個盒子需要佔據的位置為:寬 20*2+200=240px、高 20*2+50=70px,盒子的實際大小為:寬 200px、高 50px。

  那應該選擇哪中盒子模型呢?當然是“標準 W3C 盒子模型”了。怎麼樣才算是選擇了“標準 W3C 盒子模型”呢?很簡單,就是在網頁的頂部加上 DOCTYPE 聲明。如果不加 DOCTYPE 聲明,那麼各個瀏覽器會根據自己的行為去理解網頁,即 IE 瀏覽器會採用 IE 盒子模型去解釋你的盒子,而 FF 會採用標準 W3C 盒子模型解釋你的盒子,所以網頁在不同的瀏覽器中就顯示的不一樣了。反之,如果加上了 DOCTYPE 聲明,那麼所有瀏覽器都會採用標準 W3C 盒子模型去解釋你的盒子,網頁就能在各個瀏覽器中顯示一致了。

  再用 jQuery 做的例子來證實一下。

  代碼1:

<html>
<head>
<title>你用的盒子模型是?</title>
<script language="javascript" src="jquery.min.js"></script>
<script language="javascript">
var sBox = $.boxModel ? "標準W3C":"IE";
document.write("您的頁面目前支援:"+sBox+"盒子模型");
</script>
</head>
<body>
</body>
</html>

  上面的代碼沒有加上 DOCTYPE 聲明,在 IE 瀏覽器中顯示“IE盒子模型”,在 FF 瀏覽器中顯示“標準 W3C 盒子模型”。

  代碼2:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>你用的盒子模型是標準W3C盒子模型</title>
<script language="javascript" src="jquery.min.js"></script>
<script language="javascript">
var sBox = $.boxModel ? "標準W3C":"IE";
document.write("您的頁面目前支援:"+sBox+"盒子模型");
</script>
</head>
<body>
</body>
</html>

  代碼2 與代碼1 唯一的不同的就是頂部加了 DOCTYPE 聲明。在所有瀏覽器中都顯示“標準 W3C 盒子模型”。

  所以為了讓網頁能相容各個瀏覽器,讓我們用標準 W3C 盒子模型

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.