posts - 110,  comments - 152,  trackbacks - 0

           

          到底誰說了算?
                                    CSS樣式使用優先級判斷

          2007年5月27日寫的,現在轉到這里來。

          修正前,再次謝謝hax的指點。最正確的說法:http://www.w3.org/TR/CSS21/cascade.html#specificity 參見這里的相關內容,一下只是我個人偷懶的理解方式,只解決常規情況下的絕大部分問題。不是預期使用的樣式,如何判斷那個樣式會最終起作用呢?到底誰說了算,可以依據下面幾個原則:

          CSS樣式定義多了,常常出現顯示效果與預期不一致的情況。其中很大一部分原因在于起作用的樣式。

          1。多個選擇器可能會選擇同一個元素,有3個規則,從上到下重要性降低:
                !important的用戶樣式
                !important的作者樣式
                作者樣式
                用戶樣式
                瀏覽器定義的樣式
          2。CSS樣式的特殊性權重——誰有分量,誰說了算。
          CSS規范為不同類型的選擇器定義了特殊性權重,特殊性權重越高,樣式會被優先應用。
          權重設定如下:
          html選擇器,權重為1;
          類選擇器,權重為10;
          id選擇器,權重為100;
          這里還有一種情況:在html標簽中直接使用style屬性,這里的style屬性的權重為1000;
          即如下情況:
          #x34y {color:red}
          <.  p id=x34y >  優先選擇style=""設定的樣式。
          其他類型的,大家看看例子就明白了。
          例子:
          h1{color:blue}  權重為1
          p  em{color:yellow}  權重為2
          .warning{color:red}  權重為10
          p.note em.dark{color:grag}  權重為22
          #main{color:black}  權重為100     這里還有一種情況:
          權重一樣時如何處理?權重一樣時就另說了。看看下面的就明白了。

          3。CSS樣式的層疊原則——誰離我近,誰說了算。
          當權重一樣時,會采用“層疊原則” 后定義的會被應用。
          如:p{color:yellow}
                  p{color:red}
          作用到這里   <. p >我的什么顏色呢?< /p>
          結果會是red的。

          4。CSS樣式的特殊標記——誰有特權,誰說了算。
          如果有人看不順眼,非得要自己說了算,那可以搞點特權,如下即可
          p {color:blue !important;}
          加上!important;可將自己權重設為最高。
          如果你要問兩個!important;設定的樣式,那個樣式說了算,我說你為什么不自己試試看看呢!

          好了,誰說了算的問題就到這里了。



          平凡而簡單的人一個,無權無勢也無牽無掛。一路廝殺,只進不退,死而后已,豈不爽哉!
          收起對“車”日行千里的羨慕;收起對“馬”左右逢緣的感嘆;目標記在心里面,向前進。一次一步,一步一腳印,跬步千里。
          這個角色很適合現在的


          posted on 2007-12-17 23:44 過河卒 閱讀(295) 評論(0)  編輯  收藏 所屬分類: W3C/Css/Html
          文章來自: http://www.blogjava.com/ponzmd/ (彭俊-過河卒) 轉貼請聲明!
          訪問統計:
          主站蜘蛛池模板: 丰宁| 云林县| 韶关市| 福泉市| 红安县| 潞西市| 绵竹市| 卓尼县| 西宁市| 日喀则市| 察隅县| 丰顺县| 章丘市| 阿拉善左旗| 盐津县| 潍坊市| 黔东| 沂源县| 佛坪县| 永定县| 南投县| 永泰县| 石屏县| 手游| 绍兴县| 濮阳县| 隆安县| 红原县| 华坪县| 宝鸡市| 汉阴县| 湟源县| 普安县| 耒阳市| 长岛县| 莱芜市| 藁城市| 黄平县| 盘山县| 敦煌市| 平阳县|