DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> CSS入門知識 >> CSS基礎知識 >> 11.1 CSS盒子模型
11.1 CSS盒子模型
編輯:CSS基礎知識     

一、CSS盒子模型簡介

在之前的HTML入門教程中,我們學習了一個很重要的理論“塊元素和行內元素”。在這一節中,我們將接觸CSS中一個極其重要的理論,那就是“CSS盒子模型”理論。

在“CSS盒子模型”理論中,所有頁面中的元素都可以看成一個盒子,並且占據著一定的頁面空間。

一個頁面由很多這樣的盒子組成,這些盒子之間會互相影響,因此掌握盒子模型需要從兩個方面來理解:一是理解單獨一個盒子的內部結構,二是理解多個盒子之間的相互關系。

每個元素都看成一個盒子,盒子模型是由content(內容)、padding(內邊距)、margin(外邊距)和border(邊框)這四個屬性組成的。此外,在盒子模型中,還有寬度width和高度height兩大輔助性屬性。

記住,是所有的元素都可以看出一個盒子!

下圖為一個CSS盒子模型的內部結構:

圖1 CSS盒子模型

從上圖中我們可以得出盒子模型的屬性如下:

表1 盒子模型4個屬性 屬性 說明 border (邊框)元素邊框 margin (外邊距)用於定義頁面中元素與元素之間的距離 padding (內邊距)用於定義內容與邊框之間的距離 content (內容)可以是文字或圖片

其中,padding稱為“內邊距”,也常常稱為“補白”。圖1中的margin-top指的是頂部外邊距、margin-right指的是右部外邊距,以此類推。

1、內容區

內容區是CSS盒子模型的中心,它呈現了盒子的主要信息內容,這些內容可以是文本、圖片等多種類型。內容區是盒子模型必備的組成部分,其他的3部分都是可選的。

內容區有3個屬性:width、height和overflow。使用width和height屬性可以指定盒子內容區的高度和寬度。在這裡注意一點,width和height這兩個屬性是針對內容區而言,並不包括padding部分。

當內容信息太多時,超出內容區所占范圍時,可以使用overflow溢出屬性來指定處理方法。對於overflow這個屬性,我們在後面會詳細講解到。

2、內邊距

內邊距,指的是內容區和邊框之間的空間,可以被看做是內容區的背景區域。

關於內邊距的屬性有5種,即padding-top、padding-bottom、padding-left、padding-right以及綜合了以上4個方向的簡潔內邊距屬性padding。使用這5種屬性可以指定內容區域各方向邊框之間的距離

3、邊框

在CSS盒子模型中,邊框跟我們之前學過的邊框是一樣的。

邊框屬性有border-width、border-style、border-color以及綜合了3類屬性的快捷邊框屬性border。

其中border-width指定邊框的寬度,border-style指定邊框類型,border-color指定邊框的顏色。

“border-width:1px;border-style:solid;border-color:gray;”等價於“border:1px solid gray;”。

4、外邊距

外邊距,指的是兩個盒子之間的距離,它可能是子元素與父元素之間的距離,也可能是兄弟元素之間的距離。

外邊距使得元素之間不必緊湊地連接在一起,是CSS布局的一個重要手段。

外邊距的屬性也有5種,即margin-top、margin-bottom、margin-left、margin-right以及綜合了以上4個方向的簡潔內邊距屬性margin。

同時,CSS允許給外邊距屬性指定負數值,當指定負外邊距值時,整個盒子將向指定負值的相反方向移動,以此可以產生盒子的重疊效果。這就是傳說中的“負margin技術”,我們將會在“CSS進階教程”中給讀者詳細講解這一個高大上的技術喔。

內容區、內邊距、邊框、外邊距這幾個概念可能比較抽象,對於初學者來說,一時半會還沒辦法全部理解。不過沒關系,待我們把這一章學習完再回顧這些概念就變得很簡單了。

二、CSS盒子模型實例

舉例:

在線測試
 
<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>CSS盒子模型</title>
    <style type="text/css">
        #main
        {
            display:inline-block;/*將塊元素轉換為inline-block元素*/
            border:1px solid #CCCCCC;
        }
        .lvye
        {
            display:inline-block; /*將塊元素轉換為inline-block元素*/
            padding:20px;
            margin:40px;
            border:1px solid red;
            background-color:#FCE9B8;
        }
        span{border:1px solid blue;background-color:#C5FCDF;}
    </style>
</head>
<body>
    <div id="main">
        <div class="lvye"><span> 學習網</span></div>
    </div>
</body>
</html>

在浏覽器預覽效果如下:

我們把class為lvye的div層看做一個盒子,則淺藍色部分為“內容區”,淺紅色部分為“內邊距區”,紅色邊框與灰色邊框之間的空白為“外邊距區”,紅色的邊框為該盒子的邊框。

當然,我們也可以把最外層的id為main的div層看做一個盒子(因為所有HTML元素都可以看做一個盒子來理解),那讀者自己嘗試一下,為最外層的id為main的div層添加內邊距和外邊距,然後思考一下該盒子的“內容”、“外邊距”、“內邊距”和“邊框”分別是什麼?

我們從下面這種圖可以很直觀地去理解CSS盒子模型,讀者要細細體會一下:

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved