
如果你想實現不需要很多奇巧淫技的跨瀏覽器兼容的 CSS 代碼,透徹地理解 CSS 盒子模型是首要事情,CSS 盒子模型并不難,且基本支持所有瀏覽器,除了某些特定條件下的 IE 瀏覽器。
CSS 盒子模型負責處理以下事情:
一個 blcok (區塊)級對象占據多大的空間 該對象的邊界,留白 盒子的尺寸 盒子與頁面其它元素的相對位置CSS 盒子模型有以下準則:
Block (區塊)對象都是矩形 (事實上所有對象都如此) 其尺寸由 width, height, padding, borders, 以及 margins 決定 如果不設置高度,該盒子的高度將自動適應其包含的內容,加上留白等(除非使用了 float) 如果不設置寬度,一個非 float 型盒子水平上將充滿其父容器(扣除父容器的留白)處理 block 級對象時,必須注意以下事項:
如果一個盒子的寬度設置為 100%,它就不能再設置 margins, padding, 和 borders,否則會撐破其父容器 垂直毗鄰的 margin 會引起復雜的坍塌問題,導致布局問題(比如兩個垂直毗鄰的 Block 對象,上面的對象的 bottom-margin 為 40,下面的對象的 top-margin 為 20,則兩個對象的間距將是 40,而不是 60 - 譯者) 擁有相對位置和絕對位置的對象,擁有不同的行為
在 Firefox 的 Firebug 中顯示的盒子模型
這個看似簡單的問題事如果能透徹地理解,會受益匪淺。
下圖講解了 block 級對象和 inline 級對象的區別:

下面是 block 級對象和 inline 級對象的基本區別:
Block 級對象會自然地水平充滿其父容器,因此沒有必要為之設置 100% 寬度屬性 Block 級對象的起始擺放位置是其父容器的左上邊界,并順排在其前面的兄弟 Block 對象的下方(除非設置 float 或絕對位置) Inline 級對象會忽略其寬度和高度設置新聞熱點
疑難解答