搜尋
首頁web前端css教學CSS的inherit與auto

CSS的inherit與auto

Feb 10, 2017 pm 04:21 PM

一個很顯淺的寓言,千禧年老樹,電打雷劈,屹立不倒,卻毀於螻蟻的侵襲之下。自以為精通CSS的人,常常被一些小問題搞到頭暈腦脹。通常是一個很小的數值,經過層層放大扭曲後,整個佈局就走形了。 CSS是一門很簡單的語言,易學易用,但也最容易出垃圾程式碼。這是沒有深入研究這門語言所致。本人認為,CSS是由以下三大塊構成的:預設值,繼承系統與加權系統。預設值,也就是瀏覽器在使用者沒有設定屬性的情況下,預設指定的屬性。 CSS框架基本上都有一個叫reset.css 的文件,就是對其進行重設,消除各瀏覽器的差異的。繼承系統就是下面要重點討論的東西。加權系統,也就是優先順序的問題,不在本文的討論範疇,不說了。

在CSS中,許多屬性都是可以繼承的,如某個段落的字體設定為白色,其元素的字體不用設定或設定為inhert,它就是白色。這些屬性稱為inherited property,它會從父元素取得對應屬性的經過計算與轉換的值(computed value),如果父元素和它的情形一樣,它就繼續往上找,最後沒有就使用瀏覽器的預設值。

下面是inherited properties的一覽表:

  • border-collapse

  • border-spacing

  • caption-side

  • color

  • cursor

  • direction

  • empty -cells

  • font

  • font-family

  • font-stretch

  • font-size

    font-stretch
  • font-size
  • font-strp
  • font-style

  • font- variant

  • font-weight

  • letter-spacing

  • line-height

  • -glist -image
  • list-style -type
  • quotes
  • text-align
  • text-indent
  • http:// www.php.cn/
  • 我們為父元素設定了字體的樣式,沒有設定子元素的,當取出子元素的時,發現其值轉換為rgb格式(當然IE除外啦!)
  • 不過,在IE7及其之前的版本,是不支援用inhert來設定direction與visibility以外的樣式屬性。具體可參考這裡與這裡

    在IE8中,原本是inherited property的text-align在th中失效。
 
                               
RubyRouvre
By司徒正美
 
  table, tr, td, th {
    border-collapse: collapse;
    border: 1px solid #000;
  }
  table {
    text-align: right;
  } 
  td, th {
    width: 100px;
  }
  • 本來th應該會從table中繼承文本向右對齊的設置,但失效了…

  • 解決IE8這個弱智Bug也很容易,就是顯式地設置inhert。

     
      table, tr, td, th {
        border-collapse: collapse;
        border: 1px solid #000;
      }
      table {
        text-align: right;
      }
      td, th {
        width: 100px;
      }
      th {
        text-align: inherit;
      }
  • 此外還有一些CSS屬性是不能繼承的,最經典如border系列。它被稱為non-inherited property,如果我們不為它設置,我們只能取得瀏覽器的預設值,預設值在火狐中稱為 initial value 。一個相關的好消息是,預設值在火狐也可以指定了,這樣我們就不用reset樣式了!

    下面是non-inherited property的一覽表:

    background

    border

    float

    height

    • left

    • margin

    • outline

    • overflow

    • padding

      top
    • visibility
    • width
    • z-index
    • 我們為父元素設定了背景顏色,沒有設定子元素的,這時會取得瀏覽器的預設值transparent(W3C那一方好像只要是顏色都會轉換為rgb格式,多出的a為Alpha)

      接著我們來看auto,這是一個含糊不清但是有長度概念的值。適用於以下屬性:
    • overflow
    • cursor
    • height
    • margin-* (left|bottom|top |right|start|end)

    • top

    • bottom

    • left

    • -

    -moz-column- width

    languages
    • 在區塊級元素的可度量的屬性中(如width,height),如果不設定值,其預設值是auto,但它很容易會被父級元素的值覆蓋,也就是隱式地成為了inhert了。在內聯元素中,由於不具備盒子模型,如果不設置,就算是火狐也原本奉還它,這對於精確計算元素的寬度與高度是非常不利的。 auto還有對稱性,這個在居中佈局我們常常運用到它。在非度量的屬性中,如overflow,就要具體情況具體分析了。
    • 更多CSS的inherit與auto 相關文章請關注PHP中文網!

    陳述
    本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
    CSS Flexbox與網格:全面評論CSS Flexbox與網格:全面評論May 12, 2025 am 12:01 AM

    選擇Flexbox還是Grid取決於佈局需求:1)Flexbox適用於一維佈局,如導航欄;2)Grid適合二維佈局,如雜誌式佈局。兩者在項目中可結合使用,提升佈局效果。

    如何包括CSS文件:方法和最佳實踐如何包括CSS文件:方法和最佳實踐May 11, 2025 am 12:02 AM

    包含CSS文件的最佳方法是使用標籤在HTML的部分引入外部CSS文件。 1.使用標籤引入外部CSS文件,如。 2.對於小型調整,可以使用內聯CSS,但應謹慎使用。 3.大型項目可使用CSS預處理器如Sass或Less,通過@import導入其他CSS文件。 4.為了性能,應合併CSS文件並使用CDN,同時使用工具如CSSNano進行壓縮。

    Flexbox vs Grid:我應該學習兩者嗎?Flexbox vs Grid:我應該學習兩者嗎?May 10, 2025 am 12:01 AM

    是的,youshouldlearnbothflexboxandgrid.1)flexboxisidealforone-demensional,flexiblelayoutslikenavigationmenus.2)gridexcelstcelsintwo-dimensional,confffferDesignssignssuchasmagagazineLayouts.3)blosebothenHancesSunHanceSlineHancesLayOutflexibilitibilitibilitibilitibilityAnderibilitibilityAndresponScormentilial anderingStruction

    軌道力學(或我如何優化CSS KeyFrames動畫)軌道力學(或我如何優化CSS KeyFrames動畫)May 09, 2025 am 09:57 AM

    重構自己的代碼看起來是什麼樣的?約翰·瑞亞(John Rhea)挑選了他寫的一個舊的CSS動畫,並介紹了優化它的思維過程。

    CSS動畫:很難創建它們嗎?CSS動畫:很難創建它們嗎?May 09, 2025 am 12:03 AM

    CSSanimationsarenotinherentlyhardbutrequirepracticeandunderstandingofCSSpropertiesandtimingfunctions.1)Startwithsimpleanimationslikescalingabuttononhoverusingkeyframes.2)Useeasingfunctionslikecubic-bezierfornaturaleffects,suchasabounceanimation.3)For

    @KeyFrames CSS:最常用的技巧@KeyFrames CSS:最常用的技巧May 08, 2025 am 12:13 AM

    @keyframesispopularduetoitsversatoryand and powerincreatingsmoothcsssanimations.keytricksinclude:1)definingsmoothtransitionsbetnestates,2)使用AnimatingMultatingMultationMultationProperPertiessimultane,3)使用使用4)使用BombingeNtibalibility,4)使用CombanningWiThjavoFofofofoftofofo

    CSS計數器:自動編號的綜合指南CSS計數器:自動編號的綜合指南May 07, 2025 pm 03:45 PM

    CSSCOUNTERSAREDOMANAGEAUTOMANAMBERINGINWEBDESIGNS.1)他們可以使用forterablesofcontents,ListItems,and customnumbering.2)AdvancedsincludenestednumberingSystems.3)挑戰挑戰InclassINCludeBrowsEccerCerceribaliblesibility andperformiballibility andperformissises.4)創造性

    使用捲軸驅動動畫的現代滾動陰影使用捲軸驅動動畫的現代滾動陰影May 07, 2025 am 10:34 AM

    使用滾動陰影,尤其是對於移動設備,是克里斯以前涵蓋的一個微妙的UX。傑夫(Geoff)涵蓋了一種使用動畫限制屬性的新方法。這是另一種方式。

    See all articles

    熱AI工具

    Undresser.AI Undress

    Undresser.AI Undress

    人工智慧驅動的應用程序,用於創建逼真的裸體照片

    AI Clothes Remover

    AI Clothes Remover

    用於從照片中去除衣服的線上人工智慧工具。

    Undress AI Tool

    Undress AI Tool

    免費脫衣圖片

    Clothoff.io

    Clothoff.io

    AI脫衣器

    Video Face Swap

    Video Face Swap

    使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

    熱門文章

    熱工具

    Atom編輯器mac版下載

    Atom編輯器mac版下載

    最受歡迎的的開源編輯器

    SublimeText3 英文版

    SublimeText3 英文版

    推薦:為Win版本,支援程式碼提示!

    Dreamweaver CS6

    Dreamweaver CS6

    視覺化網頁開發工具

    EditPlus 中文破解版

    EditPlus 中文破解版

    體積小,語法高亮,不支援程式碼提示功能

    DVWA

    DVWA

    Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中