Я переписываю веб-приложение, которое визуально представляет данные, и хотел бы, чтобы результат автоматически заполнил доступную ширину (в предыдущей версии было несколько коэффициентов масштабирования, выбираемых пользователем). Я упростил макет к следующему:Составление содержания по горизонтали
.bar {
height: 25px;
background: green;
color: white;
}
<table>
<thead>
<tr>
<th></th>
<th>column #1</th>
<th>column #2</th>
</tr>
</thead>
<tbody>
<tr>
<td>row #1</td>
<td>
<div class="bar" style="width:50px">
cell #1
</div>
</td>
<td>
<div class="bar" style="width:150px">
cell #2
</div>
</td>
</tr>
<tr>
<td>row #2</td>
<td>
<div class="bar" style="width:100px">
cell #3
</div>
</td>
<td>
<div class="bar" style="width:75px">
cell #4
</div>
</td>
</tr>
</tbody>
</table>
Ширин стержней должны быть отрегулирован таким образом, что таблица в целом заполняет горизонтально доступное пространство (левый столбец должен держать его ширину и в идеале высота стола не должна изменяться). Количество столбцов, а также количество строк будут различаться.
У меня есть полный контроль над сгенерированным html, поэтому в решении может использоваться разная разметка (просто обратите внимание, что рассчитанные ширины штрихов не ограничены несколькими значениями).
Важно, чтобы относительная длина стержней не изменялась.. В этом примере панель в ячейке # 4 всегда должна быть на 50% больше, чем в ячейке # 1. Должно быть возможно иметь текст внутри баров, и он не должен растягиваться (поэтому я не мог решить свою проблему с преобразованиями CSS).
Решение может использовать JavaScript. Я думаю, что я мог бы заставить его работать, используя только JavaScript, измеряя левое пространство, а затем масштабируя каждый барабан вручную, но это кажется хрупким и трудным для меня поддерживать (данный пример упрощен).
Есть ли элегантное решение? Мне было трудно найти эту проблему, поэтому я мог бы кое-что упустить (обычно мне никогда не нужно задавать вопросы, так как раньше у других были подобные проблемы).
Редактировать: Кажется, я написал слишком много текста, и реальный вопрос стал неясным. Я ищу решение, которое масштабирует столбцы в таблице из данного фрагмента кода, так что таблица занимает все свободное горизонтальное (слишком поспешное редактирование) пространство . Предостережение состоит в том, что содержащиеся в нем стержни должны сохранять свою относительную длину.
Можете ли вы создать plnkr? – Baruch
Я мог бы, но только с данным примером кода. Это действительно полезно? – Gordian
Я пытаюсь понять реальный вопрос через весь шум, но я не могу. Что ты пытаешься сделать? – 1252748