元素的背景區(qū)包括前景之下直到邊框外邊界的所有空間,因此,內(nèi)容框和內(nèi)邊距都是元素背景的一部分,且邊框畫在背景之上。
網(wǎng)站建設(shè)允許應用純色作為背景,也允許使用背景圖像創(chuàng)建相當復雜的效果,CSS在這方面的能力遠遠在HTML之上。
類似于設(shè)置前景色,網(wǎng)站設(shè)計人員可以為元素的背景聲明一個顏色。為此,可以使用屬性background-color,毫不奇怪,它接受所有合法的顏色,還可以接受一個使背景透明的關(guān)鍵字。
background-color
值:<color> | transparent | inherit
初始值:transparent
應用于:所有元素
繼承性:無
計算值:根據(jù)指定確定
如果網(wǎng)站設(shè)計人員希望背景色從元素中的文本向外稍有延伸,只需增加一些內(nèi)邊距,如圖9-8所示。
P{background-color:gray; padding:10px;}
圖9-8:背景和內(nèi)邊距
可以為幾乎所有元素設(shè)置背景色,這包括body一直到em和a等行內(nèi)元素。background-color不能繼承。其默認值是transparent,這是有道理的:如果一個元素沒有指定的顏色,那么背景就應當是透明的,這樣其祖先元素的背景才能可見。
設(shè)計人員要了解這種繼承,可以想象訂在一個文字墻上的塑料標志。透過這個標志還可以看到墻,不過這不是標志的背景,這是墻的背景(按CSS的術(shù)語來講)。類似地,如果為畫布設(shè)置一個背景,文檔中有些元素沒有自己的背景,那么透過所有這些元素都能看到這個背景。這些元素并沒有繼承背景,只是能透過它們看到背景而已??瓷先ズ孟駴]有什么區(qū)別,不過在關(guān)于背景圖像的一節(jié)中你將了解到,這確實是一個重大差別。
大多數(shù)情況下都沒有必要使用關(guān)鍵字transparent,因為這是默認值。不過,有些情況下這個關(guān)鍵字可能很有用。假設(shè)一個用戶將其瀏覽器設(shè)置為使所有鏈接都有一個白色背景。在網(wǎng)站設(shè)計頁面時,將錨設(shè)置為有一個白色前景,而且你不希望這些錨有背景。為了確保你的設(shè)計選擇可行,需要以下聲明:
a{color:white; background-color:transparent;}
如果沒有背景色,白色前景和用戶指定的白色背景就會混在一起,這樣一來鏈接將變得完全不可讀。盡管這個例子不太實際,不過確實是可能的。
注意:創(chuàng)作人員樣式和讀者樣式有可能結(jié)合,出于這個原因,網(wǎng)站建設(shè)檢驗器會生成以下警告,“color沒有相應的background-color"。這是在提醒你,創(chuàng)作人員指定的顏色與用戶指定的顏色可能發(fā)生交互,而你的規(guī)則沒有考慮到這種可能性。這些警告并不表示你的樣式無效:只有錯誤才會導致檢驗失敗。