CSS知識點1:塊元素/行內元素/行內塊元素的區別
HTML可以將元素分類方式分為行內元素、塊狀元素和行內塊狀元素三種。首先需要說明的是,這三者是可以互相轉換的,使用display屬效能夠將三者任意轉換:
(1)display:inline;轉換為行內元素
(2)display:block;轉換為塊狀元素
(3)display:inline-block;轉換為行內塊狀元素
1.行內元素
行內元素最常使用的就是span,其他的只在特定功能下使用,修飾字體<b>和<i>標籤,還有<sub>和<sup>這兩個標籤可以直接做出平方的效果,而不需要類似移動屬性的幫助,很實用。
行內元素特徵:(1)設定寬高無效
(2)對margin僅設定左右方向有效,上下無效;padding設定上下左右都有效,即會撐大空間,行內元素尺寸 由內含的內容決定,盒模型中 padding, border 與塊級元素並無差異,都是標準的盒模型,但是 margin 卻只有水平方向的值,垂直方向並沒有起作用。行內元素的水平方向的padding-left,padding-right,margin- left,margin-right 都產生邊距效果,但是豎直方向的padding-top,padding-bottom,margin-top,margin-bottom都 不會產生邊距效果。padding設定上下左右都有效,即會撐大空間但是不會產生邊距效果。
(3)不會自動進行換行
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style type="text/css"> div { display: inline; } .div1 { width: 100px; height: 100px; background-color: pink; } .div2 { width: 100px; height: 100px; background-color: #FF8500; } </style> </head> <body> <div class="div1">123</div> <div class="div2">13</div> </body> </html>
顯示:
(顯示的寬高與內容有關,其本身沒有width、height)
2.塊狀元素
塊狀元素代表性的就是div,其他如p、nav、aside、header、footer、section、article、ul-li、address等等,都可以用div來實現。不過為了可以方便程式設計師解讀程式碼,一般都會使用特定的語義化標籤,使得程式碼可讀性強,且便於查錯。
塊狀元素特徵:(1)能夠識別寬高
(2)margin和padding的上下左右均對其有效
(3)可以自動換行
(4)多個塊狀元素標籤寫在一起,預設排列方式為從上至下
3.行內塊狀元素
行內塊狀元素綜合了行內元素和塊狀元素的特性,但是各有取捨。因此行內塊狀元素在日常的使用中,由於其特性,使用的次數也比較多。
行內塊狀元素特徵:(1)不自動換行
(2)能夠識別寬高
(3)預設排列方式為從左到右
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style type="text/css">
div {
display: inline-block;
}
.div1 {
width: 100px;
height: 100px;
background-color: pink;
}
.div2 {
width: 100px;
height: 100px;
background-color: #FF8500;
}
</style>
</head>
<body>
<div class="div1">123</div>
<div class="div2">13</div>
</body>
</html>
顯示:
(寬高與盒子大小有關)
4 . 行內元素與塊級元素有什麼不同?
區別一: 塊級:塊級元素會獨佔一行,預設情況下寬度自動填滿其父元素寬度 行內:行內元素不會獨佔一行,相鄰的行內元素會排在同一行。其寬度隨內容的變化而變化。
區別二: 塊級:塊級元素可以設定寬高 行內:行內元素不可以設定寬高
區別三: 塊級:塊級元素可以設定margin,padding 行內:行內元素水平方向的margin-left; margin-right; padding-left; padding-right;可以生效。但是豎直方向的margin-bottom; margin-top; padding-top; padding-bottom;卻不能生效。
區別四: 塊級:display:block; 行內:display:inline; 可以通過修改display屬性來切換塊級元素和行內元素