Главная » 2014 » Август » 23 » «Полосатые» таблицы
00:18
«Полосатые» таблицы

Существует весьма интересное решение для раскрашивания повторяющихся блоков.

"Дедовский" метод

В эпоху, когда о CSS3 никто и подумать не мог, строки таблиц раскрашивали с помощью свойства bgcolor. Как-то так:

<table>
<tr bgcolor="#F0F0F0"><td>Раз</td></tr>
<tr bgcolor="#F7F7F7"><td>Два</td></tr>
<tr bgcolor="#F0F0F0"><td>Три</td></tr>
</table>

Более умные прописывали классы:

<table>
<tr class="one"><td>Раз</td></tr>
<tr class="two"><td>Два</td></tr>
<tr class="one"><td>Три</td></tr>
</table>

...заранее прописанные в CSS:

<style>
.one {background:#F0F0F0;}
.two {background:#F7F7F7;}
</style>

Хорошо, если в таблице не больше 10 строк. А представьте, если таким способом генерировать таблицу на 100 и более строк? Сколько повторяющихся параметров увеличивающих размер кода и время загрузки. 

"Извращенский" метод

Прописать чередующиеся классы для тегов <tr> можно с помощью Javascript'а:

function makeStripy(tabClass) 
{
   var tabs = document.getElementsByTagName("table");
   for (var e = 0; e < tabs.length; e++) 
      if (tabs[e].className == tabClass) 
      {
         var rows = tabs[e].getElementsByTagName("tr");
         for (var i = 0; i < rows.length; i++) // строки нумеруются с 0
            rows[i].className += ((i % 2) == 0 ? " oddrows" : " evenrows");
      }
}

Но и этот способ не является идеальным, так как он обрабатывает все таблицы, даже те, которые трогать не нужно. Конечно, код можно доработать, но зачем изобретать велосипед, когда есть...

...Идеальный вариант

Наиболее оптимальным решением будет использование CSS3. Вот код таблицы:

<table class="striped">
<tr><td>Раз</td></tr>
<tr><td>Два</td></tr>
<tr><td>Три</td></tr>
</table>

Как видите, код минимален. А всё из-за того, что основные настройки задаются в CSS:

/* четная строка  */
.striped tr:nth-child(2n) {background:#F7F7F7;}
/* нечетная строка */
.striped tr:nth-child(2n+1) {background:#F0F0F0;}

В статье за 2006 год эта технология относилась к разряду экспериментальных, так как CSS3 в те года лишь набирало обороты. Там же приводится решение на CSS2. Но я могу с большой уверенностью сказать, что приведённый выше метод сегодня будет работать на 90% устройств. А подстраиваться под оставшихся динозавров — это пережитки прошлого.

Используйте CSS3 и HTML5 — внедряйте будущее уже сегодня.

Категория: Полезные советы | Просмотров: 970 | Добавил: Bogdan | Теги: таблицы, CSS3 | Рейтинг: 0.0/0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Облако

Категории

Joomla [0]
Темы и дополнения для Joomla.
HTML-шаблоны [1]
Современные HTML5,CSS3,jQuery.
Wordpress [1]
Темы и плагины для Wordpress.
Полезные советы [2]
Мастера делятся опытом.

Календарь

«  Август 2014  »
Пн Вт Ср Чт Пт Сб Вс
    123
45678910
11121314151617
18192021222324
25262728293031

Опросы

Ваш уровень веб-программирования?

Результаты · Все опросы

2 ответов