<center id="iyacc"><source id="iyacc"></source></center>
  • <center id="iyacc"></center>
  • 
    
  • <ul id="iyacc"><delect id="iyacc"></delect></ul>
  • <strike id="iyacc"><code id="iyacc"></code></strike>
    <strike id="iyacc"><code id="iyacc"></code></strike>
  • <center id="iyacc"><dd id="iyacc"></dd></center><ul id="iyacc"><delect id="iyacc"></delect></ul>

    網(wǎng)頁結(jié)構(gòu)和層疊樣式的繼承屬性

    • 2018-08-19 09:54:13
    • 閱讀次數(shù):
    • 作者:盈嵐科技小編
    • 來源:http://www.ww44088.com

    特殊性對于理解如何向網(wǎng)頁文檔應用聲明很重要,同樣的,還有一個很重要的概念,即繼承?;诶^承機制,樣式不僅應用到指定的元素,還會應用到它的后代元素。例如,如果向一個h1元素應用一個顏色,那么這個顏色將應用到h1中的所有文本,甚至應用到該h1 的子元素中的文本:

    h1 {color:gray;}

    <h1>Meerkat <em>Central</em></h1>

    不僅正常的h1文本會變成灰色,連em文本也會是灰色,因為em元素繼承了這個color 值。如果屬性值不能被后代元素繼承,em文本應當是黑色,而不是灰色,則必須單獨地為該元素指定顏色。

    繼承對無序列表也適用。假設為ul元素應用樣式color: gray;:

    ul {color: gray;}

    你希望應用到ul的樣式也應用到其列表項,并且應用到這些列表項中的所有內(nèi)容。正是因為有繼承,你將如愿以償。

    將聲明color :gray;應用到ul元素時,這個元素會采用該聲明。這個值再沿著樹向下

    傳播到后代元素,并一直繼續(xù),直到再沒有更多的后代元素繼承這個值為止。值絕對不會向上傳播,也就是說,元素不會把值向上傳遞到其祖先。

    注意:在網(wǎng)頁HTML中,對于向上傳播規(guī)則有一個例外:應用到body元素的背景樣式可以傳遞到html元素(html是文檔的根元素),相應地可以定義其畫布。

    繼承是CSS中最基本的內(nèi)容之一,除非有必要的理由,否則一般不會特別考慮,正所謂“熟視無睹”。不過,還是有幾點需要記住。

    首先,注意有些屬性不能繼承,這往往歸因于一個簡單的常識。例如,屬性border (用于設置元素的邊框)就不會繼承。如果邊框能繼承,網(wǎng)頁文檔會變得更混亂,除非網(wǎng)頁設計師另外花功夫去掉繼承的邊框。

    一般地,大多數(shù)框模型屬性(包括外邊距、內(nèi)邊距、背景和邊框)都不能繼承,其原因是一樣的。畢竟,你肯定不希望一個段落中的所有鏈接都從其父元素繼承30像素的左外邊距!

    繼承的值根本沒有特殊性,甚至連0特殊性都沒有。這看上去似乎只是理論上不同,不過等你了解到繼承值沒有特殊性會有什么結(jié)果時,就會知道這種差別絕不能忽視。

    *{color: gray;}

    h1#page-title {color:black;}

    <h1 id="page-title">Meerkat <em>Central</em></h1>

    <p>

    Welcome to the best place on the web for meerkat information!

    </p>

    繼承bug

    由于不同的網(wǎng)頁瀏覽器實現(xiàn)中可能存在的問題,創(chuàng)作人員不能指望依靠繼承在所有情況下得到預想的結(jié)果。例如,Navigator 4 (另外,從某種程度上講,Explorer 4和5)的表不會繼承樣式。因此,以下規(guī)則會導致文檔中除表之外的所有文本都有更小的字體:

    body (font-size: 0.8em;)

    在CSS中,這是不合適的,但這種行為確實存在,所以創(chuàng)作人—直以來都求助于以下技巧:

    body, table, th, td {font-size: 0.8em;}

    如果瀏覽器本身在繼承方面存在bug,在這樣的瀏覽器中,利用上述技巧比較有可能得到所要的結(jié)果,不過仍然不能保證。

    遺憾地是,在能正確實現(xiàn)繼承的瀏覽器中,以上“修正方法”會導致更嚴重的問題,如IE6/Win、IE5/Mac, Netscape 6+等瀏覽器。在這些瀏覽器中,最終文本會放在一個表單元格中,其字體大小是用戶默認字體大小設置的41%。應當針對更新的瀏覽器編寫正確的CSS,相比之下,試圖在老瀏覽器中解決繼承bug的做法通常比較危險。

    因為通配選擇器適用于所有元素,而且有0特殊性,其顏色聲明指定的值gray要優(yōu)先于繼承值(black),因為繼承值根本沒有特殊性。因此,em元素會顯示為灰色而不是黑色。

    這個例子生動地說明了不加區(qū)別地使用通配選擇器可能存在的問題之一。由于它能匹配任何元素,所以通配選擇器往往有一種短路繼承的效果。這個問題可以解決,不過通常更合理的做法是從一開始就避免不加區(qū)別地使用通配選擇器,從而從根本上避免這個問題。

    繼承值完全沒有特殊性,這一點很關(guān)鍵,絕不能等閑視之。例如,假設一個樣式表編寫如下,使“工具條”中的所有文本都是黑底白字:

    #toolbar {color: white; background: black;}

    只要id為toolbar的元素只包含純文本而不包含其他內(nèi)容,這就能正常起作用。不過,如果這個元素中的文本都是超鏈接(a元素),用戶代理的超鏈接樣式就會占上風。在一個Web瀏覽器中,這意味著它們的顏色很可能是藍色,因為瀏覽器的樣式表可能包含以下規(guī)則:

    a:link {color: blue;}

    為克服這個問題,必須如下聲明:

    #toolbar {color: white; background: black;}

    #toolbar a:link {color: white;}

    通過向工具條中的a元素直接指定規(guī)則。


    當前文章標題:網(wǎng)頁結(jié)構(gòu)和層疊樣式的繼承屬性

    當前URL:http://www.ww44088.com/news/wzzz/inherit-structure-and-overlap-of-web-pages.html

    上一篇:網(wǎng)頁的結(jié)構(gòu)和重疊

    下一篇:在設計網(wǎng)頁時如果css樣式發(fā)生沖突

    網(wǎng)站建設、網(wǎng)絡營銷咨詢專線:181-8386-5875(點擊可一鍵撥號)
    亚洲bt欧美bt中文字幕,囯产剧情亚洲精品无码一页,国产欧美va欧美va香蕉在,国产激情久久99久久 亚洲国产视频95 婷婷六月在线视频中文字幕
    <center id="iyacc"><source id="iyacc"></source></center>
  • <center id="iyacc"></center>
  • 
    
  • <ul id="iyacc"><delect id="iyacc"></delect></ul>
  • <strike id="iyacc"><code id="iyacc"></code></strike>
    <strike id="iyacc"><code id="iyacc"></code></strike>
  • <center id="iyacc"><dd id="iyacc"></dd></center><ul id="iyacc"><delect id="iyacc"></delect></ul>