從前面的討論可以了解到,內(nèi)邊距、外邊距和邊框都可以應用于網(wǎng)頁設計行內(nèi)非替換元素。行內(nèi)元素的這些方面根本不會影響行框的高度。如果對一個無內(nèi)外邊距的span元素應用某個邊框,可能得到如圖7-40所示的結果。
網(wǎng)站建設行內(nèi)元素的邊框邊界由font-size而不是line-height控制。換句話說,如果一個span元素的font-size為12px, line-height為36px,其內(nèi)容區(qū)就是12px高,邊框將包圍該內(nèi)容區(qū)。
或者,可以為行內(nèi)元素指定內(nèi)邊距,這會把邊框從文本本身拉開:
span {border: 1px solid black; padding: 4px;}
注意,這個內(nèi)邊距并沒有改變內(nèi)容區(qū)的具體形狀,不過它會影響這個元素行內(nèi)框的高度。類似地,網(wǎng)頁設計中向一個行內(nèi)元素增加邊框也不會影響行框的生成和布局。
至于外邊距,實際上,外邊距不會應用到行內(nèi)非替換元素的頂端和底端,它們不影響行框的高度。不過,行內(nèi)元素的兩端則是另一回事。
注意:CSS2.1中明確指定了外邊距的放置,它定義了margin-top和margin-bottom (可以應用到不是行內(nèi)非替換元素的所有其他元素),而不是簡單地說用戶代理應當忽略上、下外邊距。
應當還記得,行內(nèi)元素基本上會作為一行放置,然后分成多個部分,所以,如果向一個行內(nèi)元素應用外邊距,這些外邊距將出現(xiàn)在其開始和末尾,分別為左、右外邊距。內(nèi)邊距也出現(xiàn)在邊界上。因此,網(wǎng)頁設計盡管內(nèi)邊距和外邊距(以及邊框)不影響行高,但是它們確實能影響一個元素內(nèi)容的布局,可能將文本推離其左右兩端。實際上,如果左、右外邊距為負,可能會把文本拉近行內(nèi)元素,甚至導致重疊。
可以把行內(nèi)元素想成是一個紙片,外圍有一些塑料邊。在多行上顯示行內(nèi)元素就像是把一個大紙片剪成一些小紙片。不過,每個小紙片上不會增加額外的塑料邊。小紙片上的塑料邊還是最初那個大紙片上的塑料邊,所以看上去只是原來紙片(行內(nèi)元素)最前和最后兩端上出現(xiàn)塑料邊。
所以,網(wǎng)站建設如果行內(nèi)元素有一個背景,而且內(nèi)邊距足夠大以至于行背景重疊,此時會發(fā)生什么情況呢?看下面的例子:
p {font-size: 15px; line-height: 1em;}
p span {background:#999; padding-top: 10px; padding-bottom: 10px;}
span元素中的所有文本都有15像素高的內(nèi)容區(qū),而且為各內(nèi)容區(qū)的頂部和底部各增加了10像素的內(nèi)邊距。這些額外的像素不會增加行框的高度,這原本很好,不過這里有背景色。
網(wǎng)站建設CSS 2.1明確指出行框按文檔的順序繪制:“這會導致后續(xù)行的邊框在前面行的邊框和文本上繪制?!边@個原則同樣適用于背景,如圖7-43所示。另一方面,CSS2允許用戶代理“‘切掉’邊框和內(nèi)邊距區(qū)(也就是不顯示邊框和內(nèi)邊距)”。因此,具體結果可能很大程度上取決于用戶代理遵循哪一個規(guī)范。