Таблица HTML с чередованием цветов строк через XSL

Каков самый простой способ чередовать цвета строк в таблице HTML (также известный как чередование). Большинство моих таблиц создано в шаблонах XSL, подобных приведенным ниже, с таблицей, заголовком и т. д., Определенными в другом шаблоне.

<xsl:template match = "typ:info">
  <tr>
    <td>
      <xsl:value-of select = "typ:dateAccessed" />
    </td>
    <td>
      <xsl:value-of select = "typ:loginId" />
    </td>
  </tr>
</xsl:template>

Я предпочитаю использовать чередующиеся классы для элементов.

Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
15
0
25 725
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Ответ принят как подходящий

Если вам необходимо создать жестко запрограммированные цвета в HTML:

<xsl:template match = "typ:info">
  <xsl:variable name = "css-class">
    <xsl:choose>
      <xsl:when test = "position() mod 2 = 0">even</xsl:when>
      <xsl:otherwise>odd</xsl:otherwise>
    </xsl:choose>
  </xsl:variable>
  <tr class = "{$css-class}">
    <td>
      <xsl:value-of select = "typ:dateAccessed" />
    </td>
    <td>
      <xsl:value-of select = "typ:loginId" />
    </td>
  </tr>
</xsl:template>

В современных браузерах гораздо лучше использовать CSS и tr:nth-child(odd).

Это приводит к меньшим хлопотам на стороне XSLT, гораздо более чистой разметке HTML - и он совместим с сортировкой и фильтрацией таблиц на стороне клиента.

Используйте XSL: When and compare position mod 2, чтобы получить нечетные или четные строки для изменения классов при необходимости, например:

<xsl:choose>
    <xsl:when test = "position() mod 2 = 1">
        <td class = "odds">blah</td>
    </xsl:when>
    <xsl:otherwise>
        <td class = "even">blah</td>
    </xsl:otherwise>
</xsl:choose>

Обновлено: Правильно меняю четность / нечетность вздох

Можем ли мы вместо этого изменить только имя класса, когда мы можем выбрать внутри переменной, чтобы разрешить изменение ее внутреннего значения. Что-то вроде этого:

<xsl:variable name = "myDemoClass" >
   <xsl:choose>
     <xsl:when test = "position() mod 2 = 0">
       <xsl:text>myDemoClass</xsl:text>
     </xsl:when>
     <xsl:otherwise>
       <xsl:text>myDemoClass otherClass</xsl:text>
     </xsl:otherwise>
   </xsl:choose>
</xsl:variable>

Благодаря этому мы можем изменить имя переменной, а затем мы можем изменить, например, содержимое класса div.

<div class = "{$myDemoClass}">

С Уважением!

В своем коде я пытался изменить значение переменной xsl и сделал что-то вроде этого. В конце концов, я решил, что меня тоже можно использовать для решения этой «четно-нечетной» итерации. Я знаю, что это решено, мужчины, но это немного другой подход к приготовлению того же самого. Допустим, я хочу больше сотрудничать, а вы?

Juan Zamora 05.11.2010 19:39

Вы также можете использовать css3.

tr:nth-child(odd) { background: #ff0000; }

Поддерживается с IE9 в течение некоторого времени всеми другими браузерами.

Другие вопросы по теме