Я пытаюсь найти лучший способ динамически установить ширину столбца таблицы, не устанавливая ширину каждой ячейки отдельно.

У меня есть таблица, где каждый столбец должен иметь фиксированную ширину, независимо от содержимого. Это прекрасно работает, если каждая ячейка имеет ширину и максимальную ширину, установленные индивидуально. Но это неудобно устанавливать динамически.

Я пытаюсь использовать теги colgroup и col, чтобы установить ширину каждого столбца, но это, похоже, не работает.

table, th, td {
  border: 1px solid black;
}

th, td {
  overflow: hidden;
  white-space: nowrap;
}
<table>
  <colgroup>
    <col style="width: 50px; max-width: 50px;">
    <col style="width: 50px; max-width: 50px;">
    <col style="width: 50px; max-width: 50px;">
  </colgroup>
  <tr>
    <th>ISBN</th>
    <th>Title</th>
    <th>Price</th>
  </tr>
  <tr>
    <td>3476896</td>
    <td>My first HTML</td>
    <td>$53</td>
  </tr>
  <tr>
    <td>5869207</td>
    <td>My first CSS</td>
    <td>$49</td>
  </tr>
</table>

Я ожидал, что в этом примере первый и второй столбцы таблицы будут обрезаны, но это не сработает.

0
Lars Melander 24 Окт 2019 в 20:02

2 ответа

Лучший ответ

Так что мне интересно, если это сработает - вы можете установить width / max-width только для заголовков, а затем max-width: 0 для всех ячеек, и кажется, что вы достигнете того, что вы хотите ...

<!DOCTYPE html>
<html>
<head>
<style>

table, th, td {
  border: 1px solid black;
}

th, td {
  overflow: hidden;
  white-space: nowrap;
}

td {
  max-width: 0;
}
</style>
</head>
<body>

<table>
  <tr>
    <th style="width:50px; max-width:50px">ISBN</th>
    <th style="width:50px; max-width:50px">Title</th>
    <th style="width:50px; max-width:50px">Price</th>
  </tr>
  <tr>
    <td>347689643</td>
    <td>My first HTML</td>
    <td>$53</td>
  </tr>
  <tr>
    <td>5869207</td>
    <td>My first CSS</td>
    <td>$49</td>
  </tr>
</table>

</body>
</html>
2
MrRobboto 24 Окт 2019 в 19:47

Похоже, если вы добавите span = "3" и width = "# ofPixels" т.е.: width = "100" к вашему элементу colgroup, это определит ширину для ваших столбцов.

-1
MBri 24 Окт 2019 в 20:13
58546021