Способ группировать ячейки таблицы вместе в html?

Так что это довольно прямолинейно. Мне нужен способ группировать ячейки вместе. Как a <div> или <span>, но никто из них не работал. <tbody> показалось хорошим решением, но оно работает только для строк таблицы. Помогите!

Ответ 1

Вы можете добавить тег html col для группировки столбцов td.

.col-group-1 {
  background-color: yellow;
 }

.col-group-2 {
  background-color: silver;
 }
<table>
  <colgroup>
    <col class="col-group-1">
    <col span="2" class="col-group-2">
  </colgroup>
  <tr>
    <th>Name</th>
    <th>City</th>
    <th>Phone</th>
  </tr>
  <tr>
    <td>Mary</td>
    <td>New york</td>
    <td>987654321</td>
  </tr>
  <tr>
    <td>Magdalena</td>
    <td>Los Angeles</td>
    <td>123456789</td>
  </tr>
</table>

</body>
</html>

Ответ 2

Если вы ищете способ объединить еще 2 ячейки подряд в одну отдельную ячейку вместе с другими "обычными" ячейками (как вы это сделали бы в электронной таблице Google | Excel) способом, подобным следующему:

Merged Cells inside a table with other regular rows

затем вы можете использовать атрибут colspan для элементов td, указывающий, сколько ячеек вы объединяете:

<tr>
  <td colspan=2> Merged Cell occupying 2 columns </td>
</tr>
<tr>
  <td> Regular cell </td>
  <td> Another cell in same row </td>
</tr>

Кроме того, вы можете использовать селектор td[colspan] в css (в сочетании с любым родительским селектором по вашему выбору), чтобы ссылаться на эти объединенные ячейки.

Вот рабочий пример:

/* Style for cells with any colspan attribute */
td[colspan] {
  text-align: center;
}

/* No extra space between cells */
table {
  border-collapse: collapse;
}

th, td {
  border: 1px solid gray;
  margin: 0;
  padding: 3px 10px;
  text-align: right;
}
<table>
  <tr>
    <th>Day</th>
    <th>Invoice</th>
    <th>Total</th>
  </tr>
  <tr>
    <!-- this cell will occupy 3 columns -->
    <td colspan=3>January</td>
  </tr>
  <tr>
    <td>2</td>
    <td>0348</td>
    <td>248.35</td>
  </tr>
  <tr>
    <td>7</td>
    <td>0349</td>
    <td>126.14</td>
  </tr>
  <tr>
    <td>18</td>
    <td>0350</td>
    <td>821.99</td>
  </tr>
  <tr>
    <td colspan=3>February</td>
  </tr>
  <tr>
    <td>27</td>
    <td>0351</td>
    <td>643.50</td>
  </tr> 
</table>