<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ## 1\. 引言   上一節《[css知多少(5)——選擇器](http://www.cnblogs.com/wangfupeng1988/p/4282954.html)》最后提到,選擇器類型過多將導致一些問題,是什么問題呢?咱們直接舉例子說明。   ![](https://box.kancloud.cn/2015-11-02_56374113e54ec.png)   上圖中,css中的兩個選擇器都是針對的,而且兩個設置的顏色不一樣,這里的到底聽從誰的命令?   上面還是比較簡單的,下面在來一個復雜的:   ![](https://box.kancloud.cn/2015-11-02_56374113f1fdd.png)   上圖中的該顯示成什么顏色呢? ## 2\. 特指度   要解決以上問題,我們需要引入一個概念——特指度(specificity)。特指度表示一個css選擇器表達式的重要程度,可以通過一個公式來計算出一個數值,數越大,越重要。   這個計算叫做“I-C-E”計算公式, 1. I——Id; 2. C——Class; 3. E——Element; 即,針對一個css選擇器表達式,遇到一個id就往特指度數值中加100,遇到一個class就往特指度數值中加10,遇到一個element就往特指度數值中加1。 下面舉幾個css表達式的特指度計算結果,大家也自己算一算,是不是對: |CSS選擇器表達式|特指度計算結果 | |---|---| | p |1 | | p.large | 11| | P#large| 101| | div p#large | 102 | | div p#large ul.list| 113 | | div p#large ul.list li| 114|   還有一個重點要注意:`!important`優先級最高,高于上面一切。`* `選擇器最低,低于一切。   好了,你現在可以返回文章一開始提出的兩個問題,根據特指度計算公式計算,哪個的計算結果大,瀏覽器就會以哪個為優先。 ## 3\. 簡版規則   如果你嫌上面的計算過于復雜,有一個簡版規則。它只有三個規則,這三個規則能覆蓋大多數情況,而且比較好記。   規則一,包含ID的選擇器勝過包含Class的選擇器,包含Class的選擇器勝過包含元素的選擇器;例如下圖,第一個特指度更高:   ![](https://box.kancloud.cn/2015-11-02_563741140a9fd.png)   規則二,不同選擇器的特指度比較時,不區分加載的順序(相同選擇器在層疊時,后加載的覆蓋前加載的),例如下圖,雖然后加載,但是特指度低:   ![](https://box.kancloud.cn/2015-11-02_5637411415775.png)   規則三,設置的樣式高于繼承的樣式,不用考慮特指度。例如: ??????![](https://box.kancloud.cn/2015-11-02_5637411421a21.png)   其實,大部分情況下,你通過這個簡版的規則,即可判斷選擇器的優先級。 ## 4\. 親身經歷   wangEditor是我自己做的一個富文本編輯器,當我最開始在博客園上配置demo頁面的時候,就遇到了css選擇器優先級的問題,現在已經解決。Demo地址:[http://www.cnblogs.com/wangfupeng1988/p/4198428.html](http://www.cnblogs.com/wangfupeng1988/p/4198428.html)   對于下來菜單,例如選擇字體、字號等,我當時在wangEditor的css中是用Class來設置的,誰知道博客園頁面中有一個既有的樣式,優先級高于我的:   ![](https://box.kancloud.cn/2015-11-02_563741142df8f.png)   導致了我配置的demo中,ul的margin-left還是45px,而我寫的css明明已經設置成了0px。原因就是博客園這個css選擇器優先級要高于我寫的優先級。   當然,后來我改成了id選擇器,就改過了這個問題。 ## 5\. 總結   本節的內容是一個重點,我在許多的面試題中看到過考css優先級的問題。css優先級并不麻煩,只要你掌握了合適的方法來學習,一晚上就入門個差不多,祝君好運。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看