CSS繼承性之深入剖析(2)

來源:互聯網
上載者:User
  
  在CSS中,繼承是一種非常自然的行為,我們甚至不需要考慮是否能夠這樣去做,但是繼承也有其局限性。
  首先,有些屬性是不能繼承的。這沒有任何原因,只是因為它就是這麼設定的,標準就是如此。舉個例子來說:border屬性,大家都明白border屬性的作用是設定元素的邊框的,它就沒有繼承性。如果繼承了邊框屬性,那麼文檔看起來就會很奇怪。例如我們定義容器div的邊框為1px,而在此容器內的ul li在正常情況下我們都不希望它有邊框,如果border有繼承性,我們就要再去掉它們的邊框。這樣顯然是不合理的。
  多數邊框類的屬性,如:Border(邊框)、Padding(補白)、Margin(邊界)、背景等等,都是沒有繼承性的。
  在某些時候繼承也會帶來一些錯誤,比如說下面這條CSS定義:
  Body{color:blue}
  這是定義了Body中的文本顏色為藍色。如果Body中含有表格,在有些瀏覽器中這句定義會使除表格之外的文本變成藍色,而表格內部的文本顏色並不是藍色。從技術上來說,這是不正確的,但是它確實存在。所以我們經常需要藉助於某些技巧,比如將CSS定義成這樣:
  Body,table,th,td{color:blue}
  這樣表格內的文字也會變成藍色了。
  
相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.