CSS盒模型

一、元素分類

在講解CSS佈局之前,我們需要提前知道一些知識,在CSS中,html中的標籤元素大體被分爲三種不同的類型:塊狀元素、內聯元素(又叫行內元素)和內聯塊狀元素。

常用的塊狀元素有:<div>、<p>、<h1>...<h6>、<ol>、<ul>、<dl>、<table>、<address>、<blockquote> 、<form>

常用的內聯元素有:<a>、<span>、<br>、<i>、<em>、<strong>、<label>、<q>、<var>、<cite>、<code>

常用的內聯塊狀元素有:<img>、<input>

1.塊級元素

在html中<div>、 <p>、<h1>、<form>、<ul> 和 <li>就是塊級元素。設置display:block就是將元素顯示爲塊級元素。如下代碼就是將內聯元素a轉換爲塊狀元素,從而使a元素具有塊狀元素特點。如:a{display:block;}

塊級元素特點:

1、每個塊級元素都從新的一行開始,並且其後的元素也另起一行。(一個塊級元素獨佔一行)

2、元素的高度、寬度、行高以及頂和底邊距都可設置。

3、元素寬度在不設置的情況下,是它本身父容器的100%(和父元素的寬度一致),除非設定一個寬度。

2.內聯元素

在html中,<span>、<a>、<label>、 <strong> 和<em>就是典型的內聯元素行內元素)(inline)元素。當然塊狀元素也可以通過代碼display:inline將元素設置爲內聯元素。如下代碼就是將塊狀元素div轉換爲內聯元素,從而使 div 元素具有內聯元素特點。

 div{
     display:inline;
 }

......

<div>我要變成內聯元素</div>

內聯元素特點:

1、和其他元素都在一行上;

2、元素的高度、寬度及頂部和底部邊距不可設置;

3、元素的寬度就是它包含的文字或圖片的寬度,不可改變。

3.內聯塊狀元素

內聯塊狀元素(inline-block就是同時具備內聯元素、塊狀元素的特點,代碼display:inline-block就是將元素設置爲內聯塊狀元素。(css2.1新增),<img>、<input>標籤就是這種內聯塊狀標籤。

inline-block 元素特點:

1、和其他元素都在一行上;

2、元素的高度、寬度、行高以及頂和底邊距都可設置。


二、盒模型

1.邊框

盒子模型的邊框就是圍繞着內容及補白的線,這條線你可以設置它的粗細、樣式和顏色(邊框三個屬性)。

如下面代碼爲 div 來設置邊框粗細爲 2px、樣式爲實心的、顏色爲紅色的邊框:

div{
    border:2px  solid  red;
}

上面是 border 代碼的縮寫形式,可以分開寫:

div{
    border-width:2px;
    border-style:solid;
    border-color:red;
}

注意:

1、border-style(邊框樣式)常見樣式有:dashed(虛線)| dotted(點線)| solid(實線)。

2、border-color(邊框顏色)中的顏色可設置爲十六進制顏色,如:

border-color:#888;//前面的井號不要忘掉。

3、border-width(邊框寬度)中的寬度也可以設置爲:thin | medium | thick(但不是很常用),最常還是用象素(px)

現在有一個問題,如果有想爲 p 標籤單獨設置下邊框,而其它三邊都不設置邊框樣式怎麼辦呢?css 樣式中允許只爲一個方向的邊框設置樣式:

div{border-bottom:1px solid red;}

同樣可以使用下面代碼實現其它三邊(上、右、左)邊框的設置:

border-top:1px solid red;
border-right:1px solid red; 
border-left:1px solid red;

2.寬度和高度

盒模型寬度和高度和我們平常所說的物體的寬度和高度理解是不一樣的,css內定義的寬(width)和高(height),指的是填充以裏的內容範圍

因此一個元素實際寬度(盒子的寬度)=左邊界+左邊框+左填充+內容寬度+右填充+右邊框+右邊界。

元素的高度也是同理。

比如,如下css代碼:

div{
    width:200px;
    padding:20px;
    border:1px solid red;
    margin:10px;    
}

html代碼:

<body>
   <div>文本內容</div>
</body>

元素的實際長度爲:10px+1px+20px+200px+20px+1px+10px=262px。在chrome瀏覽器下可查看元素盒模型,如下圖:

3.填充

元素內容邊框之間是可以設置距離的,稱之爲“填充”。填充順序爲上、右、下、左(順時針)。如下代碼:

div{padding:20px 10px 15px 30px;}

順序一定不要搞混。可以分開寫上面代碼:

div{
   padding-top:20px;
   padding-right:10px;
   padding-bottom:15px;
   padding-left:30px;
}

如果上、右、下、左的填充都爲10px;可以這麼寫:

div{padding:10px;}

如果上下填充一樣爲10px,左右一樣爲20px,可以這麼寫:

div{padding:10px 20px;}

4.邊界

元素與其它元素之間的距離可以使用邊界(margin)來設置。邊界也是可分爲上、右、下、左。如下代碼:

div{margin:20px 10px 15px 30px;}

也可以分開寫:

div{
   margin-top:20px;
   margin-right:10px;
   margin-bottom:15px;
   margin-left:30px;
}

如果上右下左的邊界都爲10px;可以這麼寫:

div{ margin:10px;}

如果上下邊界一樣爲10px,左右一樣爲20px,可以這麼寫:

div{ margin:10px 20px;}

總結:padding和margin的區別,padding在邊框裏,margin在邊框外。




<!--此內容爲學習筆記,包括課程中的知識點和我自己的理解,轉載請註明-->

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章