HTML-таблицы мультилиней (rowspan) - как правильно зебра? - PullRequest
7 голосов
/ 09 марта 2012

У меня есть следующая таблица: первая строка содержит 2 подстроки, а вторая содержит 3 подстроки.

При использовании этого стиля CSS цвет зебры (, т.е. альтернативный цвет в двух последовательных строках ) неисправен, вторая основная ячейка должна быть белой, а не серой:

 tr:nth-child(odd)  {background-color: #eee;}
 tr:nth-child(even) {background-color: #fff;}

Faulty zebra with nth-child css

Так есть ли способ, чтобы цвет зебры такой стол был правильным способом?

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

<head>
    <style>
        tr:nth-child(odd)  {background-color: #eee;}
        tr:nth-child(even) {background-color: #fff;}
    </style>
<head>
<body>
    <table border="1">
        <tr>
            <td rowspan="2">
                Big1
            </td>
            <td>
                small1
            </td>
        </tr>
        <tr>
            <td>
                small2
            </td>
        </tr>
        <tr>
            <td rowspan="3">
                Big2
            </td>
            <td>
                small1
            </td>
        </tr>
        <tr>
            <td>
                small2
            </td>
        </tr>
        <tr>
            <td>
                small3
            </td>
        </tr>
    </table>
</body> 

1 Ответ

1 голос
/ 09 марта 2012

Работает так, как выложено.

Не работает как

    <tr>
        <td rowspan="2">
            Big1
        </td>
        <td>
            small1
        </td>
    </tr>

будет серым, это первый TR (нечетный)

    <tr>
        <td>
            small2
        </td>
    </tr>

будет белым, второй TR (четный) и т. Д.

Лучший способ сделать это - назначить «нечетные» и «четные» классы для рассматриваемого tr вручную.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...