< The Webmakers Lounge />

v.3 HTML5 & CSS3

Варианты подписки

Полосатые таблицы

С приходом семантической верстки, CSS и блоки все больше и больше теснят таблицы, как элемент верстки и таблицы на конец начали выполнять свою основную роль – отображение информации, сохраненной в рядах и колонках.

Таблица обычно несет в себе довольно много информации, расположенной и отсортированой на довольно маленькой площади. Так почему бы не сделать чтение этой информации более приятным и легким?

iTunes таблицаПопытаемся немного освежить вывод информации в таблицах. Ниже приведены три способа, позволяющие быстро создать полосатые таблицы за счет четных и нечетных рядов в таблице. Выбор за вами.

Способ первый. Самый явный.

Так как вариантов рядов у нас всего два, то указывать отдельно каждый не имеет смысла. Мы укажем только нечетные ряды. Соответственно все остальные будут четными ;)

Смотрим простой пример здесь.

Основной недостаток в том, что нам надо явно прописывать в коде класс для рядов.

Способ второй. Динамический.

В отличии от первого способа, который основан только на CSS, здесь применяется Javacript, который пробегает по всем рядам и ячейкам в указанной таблице и применяет к ним стили.

Пример смотрим здесь, в комментариях в коде присутствуют описания.

Чем хорош этот способ?

  • Классы теперь можно использовать для каких-либо более конкретных задач, на пример выделение выбранного ряда.
  • “Заполосатить” теперь можно любую таблицу на любой странице где присутствует вызов функции.

Знаете способ лучше? Пишите в комментариях.

Способ третий. XSLT.

В XSLT все на много проще. Нужно вписать в темплэйт условие, которое будет проверять tr на четность-нечетность и в зависимости от ваших нужд будет либо присваивать атрибут class или же будет выписывать стиль. На пример:

<tr>
<xsl:if test="(position() mod 2 = 1)">
<xsl:attribute name = "style">background:#f4f4f4;</xsl:attribute>
</xsl:if>
<td colspan="5"><strong>Заметки:</strong><xsl:value-of select="text()"/></td>
</tr>

7 комментариев на “Полосатые таблицы”

  1. Dmitry Baranovskiy сказал:

    12/03/2007 в 4:02 дп

    И всё-таки я бы написал odd Это добавит гибкости.

  2. Dmitry Baranovskiy сказал:

    12/03/2007 в 4:03 дп

    <xsl:attribute name = “class”>odd</xsl:attribute>

  3. neutrino сказал:

    12/03/2007 в 8:42 дп

    <xsl:attribute name = “class”>odd</xsl:attribute>

    Согласен, даже не помню почему через стиль описал :)

  4. Marat Suponitsky сказал:

    26/03/2007 в 12:07 дп

    В test первые круглые скобки не нужны

  5. Akral сказал:

    26/07/2007 в 6:53 пп

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

    ??

    И не надо делать поле мыла обязательным. :(

  6. Akral сказал:

    26/07/2007 в 6:54 пп

    Блин. И escapeить надо значки <>, а не стирать вместе со всем примером.

    В предыдущем комментарии после знаков вопроса читать <foo class=”bar quux knat”>

  7. Артем сказал:

    3/10/2008 в 2:20 пп

    а как тоже самое сдлеать для списка из дивов? Например ответы на коменты сделать полосатые?

Оставить ответ