Псевдоклас :nth-last-of-type в CSS
Псевдоклас :nth-last-of-type використовується для додавання стилю до елементів вказаного типу на основі їхнього номера в дереві елементів. Відмінність полягає в тому, що лічильник не починається з першого елемента, а з останнього.
Синтаксис
елемент:nth-last-of-type(непарний | парний | числo | вираз) {...}
Значення
- непарний
- Усі непарні номери елементів.
- парний
- Усі парні номери елементів.
- число
- Порядковий номер дочірнього елемента відносно батька. Нумерація починається з 1, що відповідає останньому елементу в списку.
- вираз
- Задається у вигляді an+b, де a і b - цілі числа, а n - лічильник, який автоматично приймає значення 0, 1, 2...
Якщо a дорівнює нулю, то воно не зазначається, і запис скорочується до b. Якщо b дорівнює нулю, то воно також не вказується, і вираз записується у вигляді an. a і b можуть бути від'ємними числами, у цьому випадку знак плюс змінюється на мінус, наприклад: 5n-1.
Завдяки використанню від'ємних значень a і b деякі результати можуть також бути від'ємними або дорівнювати нулю. Однак на елементи впливають лише позитивні значення через те, що нумерація елементів починається з 1.
У табл. 1 показані деякі можливі вирази та ключові слова, а також вказано, які номери елементів будуть задіяні.
| Значення | Номери елементів | Опис |
|---|---|---|
| 1 | 1 | Останній елемент. |
| 5 | 5 | П'ятий елемент з кінця. |
| 2n | 2, 4, 6, 8, 10 | Усі парні елементи, аналог значення парний. |
| 2n+1 | 1, 3, 5, 7, 9 | Усі непарні елементи, аналог значення непарний. |
| 3n+2 | 2, 5, 8, 11, 14 | — |
| -n+3 | 3, 2, 1 | — |
| 5n-2 | 3, 8, 13, 18, 23 | — |
| парний | 2, 4, 6, 8, 10 | Усі парні елементи. |
| непарний | 1, 3, 5, 7, 9 | Усі непарні елементи. |
Приклад
Приклад використання псевдокласу :nth-last-of-type для таблиці
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>nth-last-of-type</title>
<style>
table {
width: 100%; /* Ширина таблиці */
border-collapse: collapse; /* Убираємо подвійні межі */
border-spacing: 0; /* Відстань між комірками */
}
td {
border: 1px solid #333; /* Параметри рамки */
padding: 3px; /* Поля в комірках */
}
td:not(:first-of-type) {
border-left: 3px double #333; /* Межа зліва */
}
td:first-of-type {
background: #eb9; /* Колір фону */
}
td:nth-last-of-type(2n+1) {
background: #f0f0f0; /* Колір фону */
}
</style>
</head>
<body>
<table>
<tr>
<td> </td><td>2134</td><td>2135</td>
<td>2136</td><td>2137</td><td>2138</td>
</tr>
<tr>
<td>Нефть</td><td>16</td><td>34</td>
<td>62</td><td>74</td><td>57</td>
</tr>
<tr>
<td>Золото</td><td>4</td><td>69</td>
<td>72</td><td>56</td><td>47</td>
</tr>
<tr>
<td>Дерево</td><td>7</td><td>73</td>
<td>79</td><td>34</td><td>86</td>
</tr>
<tr>
<td>Камені</td><td>23</td><td>34</td>
<td>88</td><td>53</td><td>103</td>
</tr>
</table>
</body>
</html>У цьому прикладі псевдоклас :nth-last-of-type використовується для виділення кольором всіх непарних стовпців, починаючи з останнього (рис. 1).