Как я могу иметь две строки в моей таблице, которые охватывают несколько столбцов, при этом все еще совместимы с загрузкой?
Я использую bootstrap с моим веб-приложением. Я пытаюсь получить макет дизайна таблицы для работы, все еще имея возможность использовать класс bootstrap table-striped
. В настоящее время я использую следующее:
<table>
<thead>
<th>ID</th>
<th>Name</th>
<th>Department</th>
<th>Started</th>
</thead>
<tbody>
<tr>
<td>6</td>
<td>
<div>John Doe</div>
<div>12 Sales Total; 4 March, 3 April, 12 July, 14 August</div>
</td>
<td>Sales</td>
<td>Feb. 12th 2010</td>
</tr>
</tbody>
</table>
Тем не менее, я хочу, чтобы 12 Sales Total; 4 March, 3 April, 12 July, 14 August
таблицы отображался ниже John Doe Sales Feb. 12th 2010
, а не теперь в столбце, в котором он находится. Если я использую два отдельных элемента <tr>
, чтобы заставить макет работать, то table-striped
перестает работать должным образом.
Edit:
Итак, вот текущая настройка. Это получает то, что я хочу, за исключением проблемы, когда текст в div не распространяется на другие столбцы и просто обертывается внутри текущего столбца. http://jsfiddle.net/AkT6R/
Я пробовал что-то раньше, что было упомянуто в представленном ответе @Bryce, но это несовместимо с Bootstrap. http://jsfiddle.net/AkT6R/1/
Ответы
Ответ 1
Так же. Вам нужен rowpan плюс colspan:
<table border=1>
<thead>
<th>ID</th>
<th>Name</th>
<th>Department</th>
<th>Started</th>
</thead>
<tbody>
<tr>
<td rowspan=2>6</td>
<td>
<div>John Doe</div>
</td>
<td>Sales</td>
<td>Feb. 12th 2010</td>
</tr>
<tr>
<td colspan=3>
<div>12 Sales Total; 4 March, 3 April, 12 July, 14 August</div>
</td>
</tr>
</tbody>
</table>
Посмотрите на действие в http://jsfiddle.net/brycenesbitt/QJ4m5/2/
Затем для вашей проблемы с CSS. Щелкните правой кнопкой мыши и "Осмотреть элемент" в Chrome. Цвет фона происходит от bootstrap.min.css
. Это применит цвет к четным и нечетным строкам:
.table-striped>tbody>tr:nth-child(odd)>td,
.table-striped>tbody>tr:nth-child(odd)>th
{
background-color: #f9f9f9;
}
Считайте его соответствующим образом для двухстрочных строк:
.table-striped>tbody>tr:nth-child(4n+1)>td,
.table-striped>tbody>tr:nth-child(4n+2)>td
{ background-color: #ff10ff;
}
.table-striped>tbody>tr:nth-child(4n+3)>td,
.table-striped>tbody>tr:nth-child(4n+4)>td
{ background-color: #00ffff;
}
Готово.
Ответ 2
Используйте атрибут тега colspan.
<td colspan="2">
или
<td colspan="4">
Ссылка