最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

CSS優(yōu)先級的兩種理解方式

  發(fā)布時間:2020-02-06 12:30:30   作者:佚名   我要評論
本文給大家分享css 優(yōu)先級的兩種理解方式,每種方式給大家介紹的非常詳細,需要的朋友參考下吧

方式一:值相加
 

我們先去MDN看看官方的解釋:

優(yōu)先級是如何計算的?

優(yōu)先級就是分配給指定的 CSS 聲明的一個權(quán)重,它由 匹配的選擇器中的 每一種選擇器類型的 數(shù)值 決定。

而當優(yōu)先級與多個 CSS 聲明中任意一個聲明的優(yōu)先級相等的時候,CSS 中最后的那個聲明將會被應(yīng)用到元素上。

當同一個元素有多個聲明的時候,優(yōu)先級才會有意義。因為每一個直接作用于元素的 CSS 規(guī)則總是會接管/覆蓋(take

over)該元素從祖先元素繼承而來的規(guī)則。

我們從上面一段描述中得到個很重要的信息: 權(quán)重

我們再來看選擇器優(yōu)先級關(guān)系:ID選擇器 > 類選擇器 = 屬性選擇器 = 偽類選擇器 > 標簽選擇器 = 偽元素選擇器。

看來真相已經(jīng)呼之欲出了。

我們只要給不同類型的選擇器設(shè)定一個權(quán)重值,然后在根據(jù)選擇器的數(shù)量進行相加,就很容易得出優(yōu)先級,例如:

ID選擇器的權(quán)重值設(shè)為 1000

類選擇器 、屬性選擇器 、偽類選擇器的權(quán)重值設(shè)為 100

標簽選擇器、偽元素選擇器的權(quán)重值設(shè)為 10

我們可以很快速的計算出下面這段CSS的權(quán)重值并作出正確的判斷。

//權(quán)重值1110
#app .menu .item{}
//權(quán)重值210
.menu.menu .item{}
//權(quán)重值30
.item.item.item{}

可是。。。細心的你可能會發(fā)現(xiàn)只要低優(yōu)先級的選擇器數(shù)量足夠多(例如: .item...x200 {} ),那么低優(yōu)先級的權(quán)重值就可以超過高優(yōu)先級的權(quán)重值,但實際效果其實還是以高優(yōu)先級樣式為準。當出現(xiàn)這種情況時可能用現(xiàn)在的權(quán)重值計算方式就無法解釋了!

當然可以通過限制選擇器的最大數(shù)量及拉大選擇器的權(quán)重值數(shù)值還是可以解釋的,但我總覺得這不是一種好的實現(xiàn)方式。

方式二:bit位存儲

我們假設(shè)權(quán)重值是用 unsigned int 變量存儲,那么該變量的 bit 位一共有32位(4字節(jié)),我們從高位按字節(jié)展開如下:

字節(jié)1:00000000

字節(jié)2:00000000

字節(jié)3:00000000

字節(jié)4:00000000

按字節(jié)和選擇器對應(yīng):

字節(jié)1:00000000

字節(jié)2:00000000 ;ID選擇器

字節(jié)3:00000000 ;類選擇器 、屬性選擇器 、偽類選擇器

字節(jié)4:00000000 ;標簽選擇器、偽元素選擇器

相同類型選擇器直接進行個數(shù)相加,并填入到指定字節(jié)內(nèi)。

例1:

#app .menu .item{}
 

得到的權(quán)重值 bit 位如下:

結(jié)果為:65793

例2:

.menu.menu .item{}
 

得到的權(quán)重值 bit 位如下:

結(jié)果為:513

例3:

.item.item.item{}
 

得到的權(quán)重值 bit 位如下:

結(jié)果為:3

上面示例中位存儲容量只有8位,所以選擇器的最大限制為255,當然我們可以提高bit位來提高選擇器的最大值。

總結(jié)
 

這里介紹了2種CSS優(yōu)先級理解方式,你覺得那種更適合你呢?

感興趣的朋友可以給小編留言,說出你的想法。

相關(guān)文章

  • CSS優(yōu)先級計算的規(guī)則

    這篇文章主要介紹了CSS優(yōu)先級計算的規(guī)則,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-17
  • css優(yōu)先級計算方法(推薦)

    下面小編就為大家?guī)硪黄猚ss優(yōu)先級計算方法(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-07-19
  • 詳解CSS中的選擇器優(yōu)先級順序

    CSS在使用選擇器對元素施加屬性的時候會有先后順序,包括特殊性和重要性等概念在內(nèi),這里我們就來詳解CSS中的選擇器優(yōu)先級順序,需要的朋友可以參考下
    2016-06-21
  • 詳解CSS中的選擇器優(yōu)先級及樣式層疊問題解決

    CSS中的選擇器是分權(quán)重的,如果不加注意則很有可能會遇到樣式層疊的問題,下面我們就來詳解CSS中的選擇器優(yōu)先級及樣式層疊問題解決,需要的朋友可以參考下
    2016-06-14
  • CSS z-index 層級關(guān)系優(yōu)先級的概念

    這篇文章主要介紹CSS z-index 層級關(guān)系優(yōu)先級的概念,講解的比較詳細,需要的朋友可以參考下。
    2016-06-06

最新評論

高台县| 高碑店市| 恩平市| 昌乐县| 炉霍县| 通江县| 滦平县| 措勤县| 佛山市| 扬中市| 德令哈市| 天峻县| 喀喇| 老河口市| 铜山县| 出国| 铁岭县| 耿马| 扎鲁特旗| 平谷区| 顺昌县| 宁南县| 墨玉县| 达拉特旗| 从江县| 乌拉特中旗| 民丰县| 尼勒克县| 宽城| 和龙市| 普陀区| 青阳县| 邯郸县| 黄龙县| 柯坪县| 西充县| 平原县| 永修县| 孝义市| 榆中县| 沂南县|