Makabila ya CSS - Kina cha kina

什么是特异性?

如果有两条或两条以上指向同一元素的冲突 CSS 规则,则浏览器将遵循一些原则来确定哪一条是最具体的,并因此胜出。

Kuja kufikiria uadilifu (specificity) kama mtaarifu wa mafanikio/kitendo, inaweza kubadilika kwa kumekana kwamba mtaarifu wote walio na uadilifu wengi zaidi zilizotumika kwa kumekana kwamba walitumika kwa kumekana kwamba walitumika.

Vilivyo chaguo vya kawaida (*) ina uadilifu mdogo, na vilivyo chaguo vya ID ina uadilifu wa kina!

Tahidi:Hiiyo hizi niweza kumekana kwamba mtumishi wa CSS hauwezi kutumika kwa vyombo vingine, inasema kwamba inahitajika kwa sababu inasema kwamba inahitajika.

Kina ya uharibifu

Kila mtaani una nafasi yake kwenye kina ya uharibifu. Kikundi cha nne cha kina hivi kina uharibifu wa kiwango kikubwa cha kina ya mtaani:

Uharibifu wa kijana - Uharibifu wa kijana unaona kina kina kiwango kikubwa cha kina ya elementi ambao yaliweza kuwa na stili. Mfano:<h1 style="color: #ffffff;">.

ID - ID ni kiambatana kina kiwango kikubwa cha kina ya elementi wa wavuti, kama #navbar.

Class, kipimo na kikombe - Kikundi hiki kina .classes, [attributes] na kikombe, kama :hover, :focus na mengine.

Elementi na kikombe - Kikundi hiki kina jina la elementi na kikombe, kama h1, div, :before na :after.

Kwa nini uharibifu wa kina?

Tukijua njia ya kumathiririka uharibifu wa kina!

Kuanzia namba 0, ongeza 1000 kwa matumizi ya kipimo, 100 kwa ID, 10 kwa kipimo, class na kikombe, 1 kwa elementi na kikombe

Tukijiona mitaani ya programu ya vijana hizi:

实例

A: h1
B: #content h1
C: <div id="content"><h1 style="color: #ffffff">Kichwa</h1></div>
  • Kiwango cha uharibifu cha A ni 1 (elementi moja)
  • Kiwango cha uharibifu cha B ni 101 (ID moja kwa elementi moja)
  • Kiwango cha uharibifu cha C ni 1000 (stili ya kijana)

Kwa sababu 1 < 101 < 1000, kwa hivyo tatu wa makadara (C) ina kiwango kikubwa kuliko ya nne, kwa hivyo inatakiwa kuitumika.

Makadara wa kina ya uharibifu 1:

Kwenye kiwango kikubwa kile: mawendo ya mtaani ya hivi karibuni inahusishwa - Ikiwa utamaduni uangalifu wa uharibifu wa huo mara mbili katika faili ya stili ya nje, uangalifu wa pili unatakiwa kufikia elementi ambao yaliweza kuwa na stili, kwa hivyo unatakiwa kuitumika:

实例

h1 {background-color: yellow;}
h1 {background-color: red;}

亲自试一试

Makadara ya pili ina uwezo wa kufaa kila mara.

Makadara wa kina ya uharibifu 2:

ID kigeukia kiwango kikubwa kuliko kigeukia kwa ajili ya matumizi ya kipimo - Tazama mitaani minane ya chini:

实例

div#a {background-color: green;}
#a {background-color: yellow;}
div[id=a] {background-color: blue;}

亲自试一试

Makadara ya kwanza ina kiwango kikubwa kuliko makadara ya pili na ya nne, kwa hivyo inatakiwa kuitumika.

Makadara wa kina ya uharibifu 3:

Ushahidi wa konteksti bado hufikia kiwango kikubwa cha kiwango kikilicho kwa elementi moja - Ushahidi wa uharibifu wa stili bado hufikia kiwango kikubwa cha elementi ambao yaliweza kuwa na stili. Kwa hiyo, kwenye mazingo hizo:

实例

Kivuni kutoka kwenye faili ya CSS ya nje:

#content h1 {background-color: red;}

在 HTML 文件中:


将适用后一条规则。

特异性规则 4:

类选择器会击败任意数量的元素选择器 - 类选择器(诸如 .intro 会击败 h1、p、div 等):

实例

.intro {background-color: yellow;}
h1 {background-color: red;}

亲自试一试

此外,通用选择器以及被继承的值拥有 0 - * ya kina, body * na vingine vya kina ina kina 0. Chaguo cha kina cha kilichotumiwa kwa chaguo cha kina cha kina pia ina kina 0.