:nth-child()
åºçº¿
广æ³å¯ç¨
*
èª 2015å¹´7æ èµ·ï¼æ¤ç¹æ§å·²å¨ä¸»æµæµè§å¨ä¸å¾å°æ¯æï¼å¯å¨å¤§å¤æ°è®¾å¤åæµè§å¨çæ¬ä¸æ£å¸¸ä½¿ç¨ã
* æ¤ç¹æ§çæäºé¨åçæ¯æç¨åº¦å¯è½ææä¸åã
CSS :nth-child() ä¼ªç±»æ ¹æ®å
ç´ å¨ç¶å
ç´ çåå
ç´ å表ä¸çç´¢å¼æ¥éæ©å
ç´ ãæ¢è¨ä¹ï¼:nth-child() 鿩卿 ¹æ®ç¶å
ç´ å
çææå
å¼å
ç´ çä½ç½®æ¥éæ©åå
ç´ ã
å°è¯ä¸ä¸
p {
font-weight: bold;
}
li:nth-child(-n + 3) {
border: 2px solid orange;
margin-bottom: 1px;
}
li:nth-child(even) {
background-color: lightyellow;
}
<p>Track & field champions:</p>
<ul>
<li>Adhemar da Silva</li>
<li>Wang Junxia</li>
<li>Wilma Rudolph</li>
<li>Babe Didrikson-Zaharias</li>
<li>Betty Cuthbert</li>
<li>Fanny Blankers-Koen</li>
<li>Florence Griffith-Joyner</li>
<li>Irena Szewinska</li>
<li>Jackie Joyner-Kersee</li>
<li>Shirley Strickland</li>
<li>Carl Lewis</li>
<li>Emil Zatopek</li>
<li>Haile Gebrselassie</li>
<li>Jesse Owens</li>
<li>Jim Thorpe</li>
<li>Paavo Nurmi</li>
<li>Sergei Bubka</li>
<li>Usain Bolt</li>
</ul>
夿³¨ï¼å¨ element:nth-child() çè¯æ³ä¸ï¼åå
ç´ ç计æ°å
æ¬ä»»ä½å
ç´ ç±»åçå
å¼åå
ç´ ï¼ä½æ¯åªæå½è¯¥åå
ç´ ä½ç½®ä¸çå
ç´ ä¸éæ©å¨çå
¶ä»ç»ä»¶å¹é
æ¶ï¼æè¢«è§ä¸ºå¹é
ã
è¯æ³
:nth-child() 以ä¸ä¸ªåæ°æ¥æè¿°å¹é
å
å¼å
ç´ å表ä¸å
ç´ ç´¢å¼ç模å¼ãå
ç´ ç´¢å¼ä» 1 å¼å§ã
:nth-child(<nth> [of <complex-selector-list>]?) {
/* ... */
}
å ³é®åå¼
彿°ç¬¦å·
<An+B>-
表示å ç´ å¨å å¼å ç´ å表ä¸çä½ç½®æ¯
An+B模å¼çå ç´ ï¼å ¶ä¸nä¸ºæ£æ´æ°æ 0ï¼AåBä¸ºæ´æ°ï¼ä¸Aä¸ä¸º 0ãå ¶ä¸ï¼Aæ¯æ´æ°æ¥é¿ï¼Bæ¯æ´æ°åç§»éï¼næ¯ä» 0 å¼å§çææéè´æ´æ°ã
å®å¯ä»¥è¢«ç解为å表ä¸ç第
An+B个å ç´ ãAåBå¿ é¡»é½æ¯<integer>å¼ã
of <selector> è¯æ³
éè¿ä¼ éä¸ä¸ªéæ©å¨åæ°ï¼æä»¬å¯ä»¥éæ©ä¸è¯¥éæ©å¨å¹é
ç第 n 个å
ç´ ãä¾å¦ï¼ä¸é¢çéæ©å¨å¹é
åä¸ä¸ªè®¾ç½®äº class="important" çå表项ã
:nth-child(-n + 3 of li.important) {
}
è¿ä¸å°éæ©å¨ç§»å°å½æ°ä¹å¤ä¸åï¼å¦ï¼
li.important:nth-child(-n + 3) {
}
è¯¥éæ©å¨ä¼å¹é
å±äºåä¸ä¸ªåå
ç´ ï¼ä¸ä¸éæ©å¨ li.important å¹é
çå表项ã
示ä¾
>éæ©å¨ç¤ºä¾
tr:nth-child(odd)ortr:nth-child(2n+1)-
表示 HTML è¡¨æ ¼ä¸ç奿°è¡ï¼1ã3ã5â¦â¦ã
tr:nth-child(even)ortr:nth-child(2n)-
表示 HTML è¡¨æ ¼ä¸çå¶æ°è¡ï¼2ã4ã6â¦â¦ã
:nth-child(7)-
表示第 7 个å ç´ ã
:nth-child(5n)-
表示第 5ã10ã15â¦â¦ä¸ªå ç´ ã第ä¸ä¸ªå¹é çå ç´ æ¯ 0 [=5x0]ï¼ä½ç±äºå ç´ çç´¢å¼æ¯ä» 1 å¼å§çè
nä» 0 å¼å§ï¼æä»¥ä¸ä¼å¹é ä»»ä½å ç´ ãè¿ä¹ä¸çå¯è½æç¹å¥æªï¼ä½æ¯å½å ¬å¼ä¸çBé¨å为>0ç弿¶ï¼å°±ä¼å徿´ææä¹ï¼å°±åä¸é¢ç示ä¾ä¸æ ·ã :nth-child(n+7)-
表示第ä¸ä¸ªåå ¶ä¹åçå ç´ ï¼7 [=0+7]ã8 [=1+7]ã9 [=2+7]ï¼ççã
:nth-child(3n+4)-
表示第 4 [=(3Ã0)+4]ã7 [=(3Ã1)+4]ã10 [=(3Ã2)+4]ã13 [=(3Ã3)+4]â¦â¦ä¸ªå ç´ ã
:nth-child(-n+3)-
表示åä¸ä¸ªå ç´ ã[=-0+3ã-1+3ã-2+3]
p:nth-child(n)-
表示å å¼å ç´ å表ä¸çæ¯ä¸ª
<p>å ç´ ãè¿ä¸ç®åçpéæ©å¨éæ©çå ç´ ç¸åï¼å°½ç®¡å ·ææ´é«çä¼å 级ï¼ã p:nth-child(1)æp:nth-child(0n+1)-
表示æ¯ä¸ä¸ªå å¼å ç´ å表ä¸ç第ä¸ä¸ª
<p>å ç´ ãè¿ä¸:first-childéæ©å¨ç¸åï¼å¹¶ä¸å ·æç¸åçä¼å 级ï¼ã p:nth-child(n+8):nth-child(-n+15)-
表示å å¼å ç´ å表ä¸ç第 8 å°ç¬¬ 15 个ï¼ä¸ä¸º
<p>å ç´ çå ç´ ã
详ç»ç¤ºä¾
HTML
<h3>
<code>span:nth-child(2n+1)</code>ï¼å
ç´ é´ä¸æå
¥ <code><em></code> å
ç´ ã
</h3>
<p>第 1ã3ã5ã7 个åèç¹è¢«éä¸ã</p>
<div class="first">
<span>Span 1!</span>
<span>Span 2</span>
<span>Span 3!</span>
<span>Span 4</span>
<span>Span 5!</span>
<span>Span 6</span>
<span>Span 7!</span>
</div>
<br />
<h3>
<code>span:nth-child(2n+1)</code>ï¼å
ç´ é´æå
¥ <code><em></code> å
ç´ ã
</h3>
<p>
第 1ã5ã7 个åèç¹è¢«éä¸ã<br />
3 ä¼è¢«è®¡æ°ï¼å ä¸ºå®æ¯ä¸ä¸ªåèç¹ï¼ä½æ¯å®ä¸ä¼è¢«éä¸ï¼å 为å®ä¸æ¯
<code><span></code>ã
</p>
<div class="second">
<span>Span!</span>
<span>Span</span>
<em>è¿æ¯ä¸ä¸ª `em`ã</em>
<span>Span</span>
<span>Span!</span>
<span>Span</span>
<span>Span!</span>
<span>Span</span>
</div>
<br />
<h3>
<code>span:nth-of-type(2n+1)</code>ï¼å
ç´ é´æå
¥ <code><em></code> å
ç´ ã
</h3>
<p>
第 1ã4ã6ã8 个åèç¹è¢«éä¸ã<br />
3 ä¸ä¼è¢«è®¡æ°æéä¸ï¼å ä¸ºå®æ¯ <code><em></code> è䏿¯
<code><span></code>ï¼è <code>nth-of-type</code> åªéæ©è¯¥ç±»åçåèç¹ã
<code><em></code> 被å®å
¨è·³è¿å忽ç¥ã
</p>
<div class="third">
<span>Span!</span>
<span>Span</span>
<em>è¿æ¯ä¸ä¸ª `em`ã</em>
<span>Span!</span>
<span>Span</span>
<span>Span!</span>
<span>Span</span>
<span>Span!</span>
</div>
CSS
.first span:nth-child(2n + 1),
.second span:nth-child(2n + 1),
.third span:nth-of-type(2n + 1) {
background-color: tomato;
}
ç»æ
ä½¿ç¨ of <selector>
å¨è¿ä¸ªç¤ºä¾ä¸æä¸ä¸ªæ åºå表ï¼å
¶ä¸ä¸äºååå·²ç»ä½¿ç¨ class="noted" å°å
¶æ è®°ä¸ºæ æ³¨é¡¹ã已使ç¨ç²åºè¾¹æ¡å°å®ä»¬é«äº®æ¾ç¤ºã
HTML
<ul>
<li class="noted">Diego</li>
<li>Shilpa</li>
<li class="noted">Caterina</li>
<li>Jayla</li>
<li>Tyrone</li>
<li>Ricardo</li>
<li class="noted">Gila</li>
<li>Sienna</li>
<li>Titilayo</li>
<li class="noted">Lexi</li>
<li>Aylin</li>
<li>Leo</li>
<li>Leyla</li>
<li class="noted">Bruce</li>
<li>Aisha</li>
<li>Veronica</li>
<li class="noted">Kyouko</li>
<li>Shireen</li>
<li>Tanya</li>
<li class="noted">Marlene</li>
</ul>
CSS
å¨ä¸é¢ç CSS ä¸ï¼æä»¬é䏿 è®°äº class="noted" çç¬¬å¶æ°ä¸ªå表项ã
li:nth-child(even of .noted) {
background-color: tomato;
border-bottom-color: seagreen;
}
ç»æ
带æ class="noted" ç项å
·æç²åºè¾¹æ¡ï¼è第 3ã10 å 17 项å
·æçº¯è²èæ¯ï¼å 为å®ä»¬æ¯å¸¦æ class="noted" çç¬¬å¶æ°ä¸ªå表项ã
of <selector> è¯æ³ä¸ <selector> nth-child
å¨è¿ä¸ªç¤ºä¾ä¸ï¼æä¸¤ä¸ªæ åºå表ï¼å
¶ä¸ç¬¬ä¸ä¸ªå表æ¾ç¤ºäº li:nth-child(-n + 3 of .noted) çææï¼ç¬¬äºä¸ªå表æ¾ç¤ºäº li.noted:nth-child(-n + 3) çææã
HTML
<ul class="one">
<li class="noted">Diego</li>
<li>Shilpa</li>
<li class="noted">Caterina</li>
<li>Jayla</li>
<li>Tyrone</li>
<li>Ricardo</li>
<li class="noted">Gila</li>
<li>Sienna</li>
<li>Titilayo</li>
<li class="noted">Lexi</li>
</ul>
<ul class="two">
<li class="noted">Diego</li>
<li>Shilpa</li>
<li class="noted">Caterina</li>
<li>Jayla</li>
<li>Tyrone</li>
<li>Ricardo</li>
<li class="noted">Gila</li>
<li>Sienna</li>
<li>Titilayo</li>
<li class="noted">Lexi</li>
</ul>
CSS
ul.one > li:nth-child(-n + 3 of .noted) {
background-color: tomato;
border-bottom-color: seagreen;
}
ul.two > li.noted:nth-child(-n + 3) {
background-color: tomato;
border-bottom-color: seagreen;
}
ç»æ
第ä¸ä¸ªç¤ºä¾å°æ ·å¼åºç¨äºåä¸ä¸ªå¸¦æ class="noted" çåè¡¨é¡¹ï¼æ 论å®ä»¬æ¯å¦æ¯å表ä¸çåä¸é¡¹ã
第äºä¸ªç¤ºä¾ä»
å°æ ·å¼åºç¨äºå表ä¸çåä¸ä¸ªé¡¹ç®ä¸å¸¦æ class="noted" çå表项ã
ä½¿ç¨ of <selector> ä¿®å¤æ¡çº¹è¡¨æ ¼
è¡¨æ ¼é常ä¼ä½¿ç¨æé©¬æ¡çº¹ï¼å³å¨è¡ä¹é´äº¤æ¿ä½¿ç¨æµ
è²åæ·±è²èæ¯é¢è²ï¼ä½¿è¡¨æ ¼æ´æäºé
è¯»åæ éç¢ã妿æä¸è¡è¢«éèï¼æ¡çº¹å°ä¼è¢«åå¹¶ï¼ä»èæ¹åäºé¢æçææãå¨è¿ä¸ªç¤ºä¾ä¸ï¼ä½ å¯ä»¥çå°ä¸¤ä¸ªå¸¦æ hidden è¡çè¡¨æ ¼ã第äºä¸ªè¡¨æ ¼ä½¿ç¨ of :not([hidden]) å¤çéèçè¡ã
HTML
<table class="broken">
<thead>
<tr><th>å§å</th><th>å¹´é¾</th><th>å½å®¶</th></tr>
</thead>
<tbody>
<tr><td>Mamitiana</td><td>23</td><td>é©¬è¾¾å æ¯å </td></tr>
<tr><td>Yuki</td><td>48</td><td>æ¥æ¬</td></tr>
<tr hidden><td>Tlayolotl</td><td>36</td><td>墨西å¥</td></tr>
<tr><td>Adilah</td><td>27</td><td>æ©æ´å¥</td></tr>
<tr><td>Vieno</td><td>55</td><td>è¬å
°</td></tr>
<tr><td>Ricardo</td><td>66</td><td>巴西</td></tr>
</tbody>
</table>
<table class="fixed">
<thead>
<tr><th>å§å</th><th>å¹´é¾</th><th>å½å®¶</th></tr>
</thead>
<tbody>
<tr><td>Mamitiana</td><td>23</td><td>é©¬è¾¾å æ¯å </td></tr>
<tr><td>Yuki</td><td>48</td><td>æ¥æ¬</td></tr>
<tr hidden><td>Tlayolotl</td><td>36</td><td>墨西å¥</td></tr>
<tr><td>Adilah</td><td>27</td><td>æ©æ´å¥</td></tr>
<tr><td>Vieno</td><td>55</td><td>è¬å
°</td></tr>
<tr><td>Ricardo</td><td>66</td><td>巴西</td></tr>
</tbody>
</table>
CSS
.broken > tbody > tr:nth-child(even) {
background-color: silver;
}
.fixed > tbody > tr:nth-child(even of :not([hidden])) {
background-color: silver;
}
ç»æ
第ä¸ä¸ªè¡¨æ ¼ç´æ¥ä½¿ç¨äº :nth-child(even)ï¼ä¸å¨ç¬¬ä¸è¡åºç¨äº hidden 屿§ãå æ¤ï¼å¨è¿ç§æ
åµä¸ï¼ç¬¬ä¸è¡æ¯ä¸å¯è§çï¼ç¬¬äºè¡å第åè¡ä¼è¢«è®¡ä¸ºå¶æ°é¡¹ï¼å°½ç®¡ä»ææ¯ä¸è®²å®ä»¬æ¯å¶æ°é¡¹ï¼ä½ä»è§è§ä¸è®²å®ä»¬ä¸æ¯ã
第äºä¸ªè¡¨æ ¼ä½¿ç¨äº of è¯æ³ï¼ä½¿ç¨ :nth-child(even of :not([hidden])) 以åªéæ©ä¸éèç trã
ä¸ºè¡¨æ ¼åæ·»å æ ·å¼
è¦è®¾ç½®è¡¨æ ¼åçæ ·å¼ï¼ä½ ä¸è½å¨ <col> å
ç´ ä¸è®¾ç½®æ ·å¼ï¼å ä¸ºè¡¨æ ¼åå
æ ¼ä¸æ¯å®çåå
ç´ ï¼å°±åä½ å¯ä»¥ä½¿ç¨è¡å
ç´ <tr>䏿 ·ï¼ãå :nth-child() è¿æ ·ç伪类å¯ä»¥æ¹ä¾¿å°éæ©ååå
æ ¼ã
å¨è¿ä¸ªä¾åä¸ï¼æä»¬ä¸ºæ¯ä¸ªå设置ä¸åçæ ·å¼ã
HTML
<table>
<caption>å¦çåå</caption>
<colgroup>
<col/>
<col/>
<col/>
</colgroup>
<thead>
<tr><th>å§å</th><th>å¹´é¾</th><th>å½å®¶</th></tr>
</thead>
<tbody>
<tr><td>Mamitiana</td><td>23</td><td>é©¬è¾¾å æ¯å </td></tr>
<tr><td>Yuki</td><td>48</td><td>æ¥æ¬</td></tr>
</tbody>
</table>
CSS
td {
padding: 0.125rem 0.5rem;
height: 3rem;
border: 1px solid black;
}
tr :nth-child(1) {
text-align: left;
vertical-align: bottom;
background-color: silver;
}
tbody tr :nth-child(2) {
text-align: center;
vertical-align: middle;
}
tbody tr :nth-child(3) {
text-align: right;
vertical-align: top;
background-color: tomato;
}
ç»æ
è§è
| è§è |
|---|
| Selectors Level 4> # nth-child-pseudo> |
æµè§å¨å ¼å®¹æ§
åè§
:nth-of-type():nth-last-child():has()ï¼ç¨äºéæ©ç¶å ç´ ç伪类- æ ç»æç伪类
- CSS 鿩卿¨¡å