首頁 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中失效。
 <table>
  <tr>
    <th>Ruby</th>
    <th>Rouvre</th>
  </tr>
  <tr>
    <td>By</td>
    <td>司徒正美</td>
  </tr>
</table>
登入後複製
 
  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

    熱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

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

    熱門文章

    <🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
    3 週前 By 尊渡假赌尊渡假赌尊渡假赌
    北端:融合系統,解釋
    3 週前 By 尊渡假赌尊渡假赌尊渡假赌
    Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
    3 週前 By 尊渡假赌尊渡假赌尊渡假赌

    熱工具

    記事本++7.3.1

    記事本++7.3.1

    好用且免費的程式碼編輯器

    SublimeText3漢化版

    SublimeText3漢化版

    中文版,非常好用

    禪工作室 13.0.1

    禪工作室 13.0.1

    強大的PHP整合開發環境

    Dreamweaver CS6

    Dreamweaver CS6

    視覺化網頁開發工具

    SublimeText3 Mac版

    SublimeText3 Mac版

    神級程式碼編輯軟體(SublimeText3)

    熱門話題

    Java教學
    1666
    14
    CakePHP 教程
    1425
    52
    Laravel 教程
    1324
    25
    PHP教程
    1272
    29
    C# 教程
    1251
    24
    靜態表單提供商的比較 靜態表單提供商的比較 Apr 16, 2025 am 11:20 AM

    讓我們嘗試在這裡造成一個術語:“靜態表單提供商”。你帶上html

    使Sass更快的概念證明 使Sass更快的概念證明 Apr 16, 2025 am 10:38 AM

    在一個新項目開始時,Sass彙編發生在眼睛的眨眼中。感覺很棒,尤其是當它與browsersync配對時,它重新加載

    每周平台新聞:HTML加載屬性,主要的ARIA規格以及從iframe轉移到Shadow dom 每周平台新聞:HTML加載屬性,主要的ARIA規格以及從iframe轉移到Shadow dom Apr 17, 2025 am 10:55 AM

    在本週的平台新聞綜述中,Chrome引入了一個用於加載的新屬性,Web開發人員的可訪問性規範以及BBC Move

    與部分元素的交易 與部分元素的交易 Apr 12, 2025 am 11:39 AM

    同一天發表了兩篇文章:

    帶有HTML對話框元素的一些動手 帶有HTML對話框元素的一些動手 Apr 16, 2025 am 11:33 AM

    這是我第一次查看HTML元素。我已經意識到了一段時間,但是尚未將其旋轉。它很酷,

    我們如何標記Google字體並創建Goofonts.com 我們如何標記Google字體並創建Goofonts.com Apr 12, 2025 pm 12:02 PM

    Goofonts是由開發人員和設計師丈夫簽名的附帶項目,它們都是版式的忠實擁護者。我們一直在標記Google

    多腳步滑塊:一般案例 多腳步滑塊:一般案例 Apr 12, 2025 am 10:52 AM

    這個兩部分系列的第一部分詳細介紹了我們如何獲得兩次跑步的滑塊。現在,我們&#039;

    '訂閱播客”鏈接應在哪裡? '訂閱播客”鏈接應在哪裡? Apr 16, 2025 pm 12:04 PM

    有一段時間,iTunes是播客中的大狗,因此,如果您將“訂閱播客”鏈接到喜歡:

    See all articles