探究CSS高級語法中選擇器分組和CSS繼承用法
這問向大家描述一下CSS高級語法,主要包括選擇器的分組和CSS繼承及其問題,通過CSS繼承,子元素將繼承最高級元素(在本例中是body)所擁有的屬性,不需要另外的規(guī)則,所有body的子元素都應(yīng)該顯示Verdana字體,子元素的子元素也一樣。并且在大部分的現(xiàn)代瀏覽器中,也確實是這樣的。
CSS高級語法
選擇器的分組
你可以對選擇器進行分組,這樣,被分組的選擇器就可以分享相同的聲明。用逗號將需要分組的選擇器分開。在下面的例子中,我們對所有的標(biāo)題元素進行了分組。所有的標(biāo)題元素都是綠色的。
- h1,h2,h3,h4,h5,h6{
- color:green;
- }
CSS繼承及其問題
根據(jù)CSS,子元素從父元素繼承屬性。但是它并不總是按此方式工作??纯聪旅孢@條規(guī)則:
- body{
- font-family:Verdana,sans-serif;
- }
根據(jù)上面這條規(guī)則,站點的body元素將使用Verdana字體(假如訪問者的系統(tǒng)中存在該字體的話)。
通過CSS繼承,子元素將繼承最高級元素(在本例中是body)所擁有的屬性(這些子元素諸如p,td,ul,ol,ul,li,dl,dt,和dd)。不需要另外的規(guī)則,所有body的子元素都應(yīng)該顯示Verdana字體,子元素的子元素也一樣。并且在大部分的現(xiàn)代瀏覽器中,也確實是這樣的。
但是在那個瀏覽器大戰(zhàn)的血腥年代里,這種情況就未必會發(fā)生,那時候?qū)?biāo)準(zhǔn)的支持并不是企業(yè)的優(yōu)先選擇。比方說,Netscape4就不支持繼承,它不僅忽略CSS繼承,而且也忽略應(yīng)用于body元素的規(guī)則。IE/Windows直到IE6還存在相關(guān)的問題,在表格內(nèi)的字體樣式會被忽略。我們又該如何是好呢?
友善地對待Netscape4
幸運地是,你可以通過使用我們稱為"BeKindtoNetscape4"的冗余法則來處理舊式瀏覽器無法理解CSS繼承的問題。
- body{
- font-family:Verdana,sans-serif;
- }
- p,td,ul,ol,li,dl,dt,dd{
- font-family:Verdana,sans-serif;
- }
4.0瀏覽器無法理解繼承,不過他們可以理解組選擇器。這么做雖然會浪費一些用戶的帶寬,但是如果需要對Netscape4用戶進行支持,就不得不這么做。
CSS繼承是一個詛咒嗎?
如果你不希望"Verdana,sans-serif"字體被所有的子元素繼承,又該怎么做呢?比方說,你希望段落的字體是Times。沒問題。創(chuàng)建一個針對p的特殊規(guī)則,這樣它就會擺脫父元素的規(guī)則:
- body{
- font-family:Verdana,sans-serif;
- }
- td,ul,ol,ul,li,dl,dt,dd{
- font-family:Verdana,sans-serif;
- }
- p{
- font-family:Times,"TimesNewRoman",serif;
- }
【編輯推薦】
- CSS三大選擇器區(qū)別
- CSS組合與嵌套用法詳解
- CSS樣式表設(shè)計十個雕蟲小技
- 深入學(xué)習(xí)六大CSS選擇符的使用
- 解讀DIV CSS網(wǎng)頁布局中CSS無效十個原因