→ Полосатая таблица или псевдокласс :nth-child()
У нас есть вот такой html:
Код (кликабельно)
Короче это девятистрочная таблица с классом .table-test-odd, допустим на странице много таблиц, но покрасить нужно только одну поэтому, чтобы ее выделить придумываем ей какой-нибудь класс.
Далее нужно совершить всего два действия:
1) Написать соотвествующий CSS:
- .odd {
- background:#06f;
- color:#e4e4e4;
- }
-
- .table-test-odd {
- width:400px;
- border-collapse:collapse;
- border:1px #e4e4e4 solid;
- }
Где .odd класс для нечетной строки в таблице.
2) Подключить два js один из них это jQuery.js, а второй это маленький плагин, с помощью которого можно красить четные и нечетные строки в таблице.
<script type="text/javascript" src="jQuery.js"></script>
- <script type="text/javascript">
- $(document).ready(function() {
- $('.table-test-odd tr:odd').addClass('odd');
- $('.table-test-odd tr:even').addClass('even');
- });
- </script>
Ну и смотрим результат:
1. | odd - row |
2. | even - row |
3. | odd - row |
4. | even - row |
5. | odd - row |
6. | even - row |
7. | odd - row |
8. | even - row |
9. | odd - row |
кстати, используя, всё тот же плагин можно покрасить также и чётные строки в таблице, описав в css класс .even
Псевдокласс :nth-child()
На самом деле, :odd и :even являются частным воплощением псевдокласса :nth-child с единственной лишь разницей, они не берут во внимание родительский объект наших строк, а всего лишь «фильтруют» список элементов.
Иными словами, :odd эквивалентен записи: :nth-child(2n+1), а :even эквивалентен записи: :nth-child(2n). С помощью этого псевдокласса можно добираться практически до любого элемента. Впрочем, вот даже можно составить произвольную таблицу:
Значение :nth-child() | порядковый номер элемента | Описание |
---|---|---|
1 | 1 | Самый первый элемент, эквивалентен записи :first-child. |
7 | 7 | Седьмой элемент. |
2n | 2, 4, 6, 8, 10 | Все четные элементы, аналог значения even. |
2n+1 | 1, 3, 5, 7, 9 | Все нечетные элементы, аналог значения odd. |
3n+2 | 2, 5, 8, 11, 14 | — |
-n+3 | 3, 2, 1 | — |
5n-2 | 3, 8, 13, 18, 23, 28 | — |
even | 2, 4, 6, 8, 10, 12, 14 | Все четные элементы. |
odd | 1, 3, 5, 7, 9, 11, 13, 14 | Все нечетные элементы. |
кстати, чтобы добраться до самого последнего элемента можно использовать псевдокласс: :last-child