塊元素、內聯元素、內聯塊元素:
元素就是標簽,布局中常用的有三種標簽,塊元素、內聯元素、內聯塊元素,了解這三種元素的特性,才能熟練的進行頁面布局。
塊元素:
塊元素,也可以稱為行元素,布局中常用的標簽,如:div、p、ul、li、h1-h6等等都是塊元素,它在布局中的行為:
(1)支持全部的樣式
(2)如果沒有設置寬度,默認的寬度為父級寬度100%
(3)盒子占據一行、即使設置了寬度
代碼:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>塊元素</title> <style type="text/css"> .box{ background-color: gold; /*width:300px;*/ /*height:200px;*/ } .box2{ background-color: green; /*width:300px;*/ /*height:200px;*/ } </style> </head> <body> <div class="box">div元素</div> <p class="box2">p元素</p </body> </html>
頁面顯示效果:
內聯元素:
內聯元素,也可以稱為行內元素,布局中常用的標簽,如:a、span、em、b、strong、i等等都是內聯元素,它們在布局中的行為:
(1)支持部分樣式(不支持寬、高、margin上下、padding上下)
(2)寬高由內容決定
(3)盒子並在一行
(4)代碼換行,盒子之間會產生間距
(5)子元素是內聯元素,父元素可以用text-align屬性設置子元素水平對方方式
解決內聯元素間隙的方法:
(1)去掉內聯元素之間的換行
(2)將內聯元素的父級設置font-size為0,內聯元素自身再設置font-size
代碼:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>內聯元素</title> <style type="text/css"> .box{ width:500px; height:400px; border:1px solid #000; margin:50px auto 0; font-size:0; /* 解決內聯元素間隙 */ } .box div{ width:100px; height:100px; margin:10px; background-color:gold; } .box a{ background-color:gold; /* width:300px; height:200px; 設置寬高完全不起作用 */ /* margin:100px 20px; 沒有上下的邊距,只有左右的邊距 */ /*padding:10px 10px;*/ /* padding的上下不應該起作用的,卻出現了bug */ font-size:16px;/* 解決內聯元素間距 */ } .box2{ width:500px; height:100px; border:1px solid #000; margin:50px auto 0; text-align:center; } </style> </head> <body> <div class="box"> <div></div> <div></div> <a href="#">鏈接文字一</a><a href="#">鏈接文字二</a> /* 取消間隙 */ <a href="#">鏈接文字三</a> <a href="#">鏈接文字四</a> <a href="#">鏈接文字五</a> </div> <div class="box2"> <a href="#">鏈接文字</a> </div> </body> </html>
內聯塊元素:
內聯塊元素,也叫行內塊元素,是新增的元素類型,現有元素沒有歸於此類別的,img和input元素的行為類似這種元素,但是也歸類於內聯元素,我們可以用display屬性將塊元素或者內聯元素轉化成這種元素。它們在布局中表現的行為:
(1)支持全部樣式
(2)如果沒有設置寬高,寬高由內容決定
(3)盒子並在一起
(4)代碼換行,盒子會產生間距
(5)子元素是內聯塊元素,父元素可以用text-align屬性設置子元素水平對齊方式。
這三種元素,可以通過display屬性來相互轉化,不過實際開發中,塊元素用得比較多,所以我們經常把內聯元素轉化為塊元素,少量轉化為內聯元素,而要使用內聯元素時,直接使用內聯元素,而不用塊元素轉化了。