Показать сообщение отдельно
  #46 (permalink)  
Старый 01.10.2019, 06:27
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Блондинка,
я не понимаю чего вы пытаетесь сотворить и почему куча таблиц вместо одной, но если нужно установить размеры ячеек одной таблицы по колонкам, то tbl.rows[0].cells.length, а далее согласно своим условиям для всех ее строк.

Но зачем это все для таблицы я вообще не понимаю. Размер ячейки таблицы будет зависеть от ее содержания и если указать первой ячейке размер фиксированный, и содержимое ячеек помещается в них свободно, то остальные ячейки сами примут равные размеры в процентном соотношении от ширины таблицы минус размер первой ячейки. Другое дело если нужно жестко указать размеры ячеек таблицы, в которые разместить содержимое. Или же используется не таблица, а иные элементы, вот тогда flex, grid. Выше у вас flex и чем он вас не устраивает не знаю, ведь размеры будут рассчитываться все равно от родителя. Коли вы точно хотите подогнать их, то учитывайте размеры всех элементов и их стилей. Например, посредством скрипта, для div и сетки:

<style>
.wrapper {
    width: 314px;
    margin: 1px;
    display: grid;
    grid-gap: 1px;
}

.wrapper > div {
    border: 1px solid #ddd;
    padding: 4px;
}

table {
    border-collapse: separate;
    width: 315px;
}

td {
    border: 1px solid #ddd;
    padding: 4px;
}

td:first-child {
    width: 52px;
}
</style>

<div class="wrapper">
   <div>1</div>
   <div>2</div>
   <div>3</div>
   <div>4</div>
   <div>5</div>
</div>

<div class="wrapper">
   <div>1</div>
   <div>2</div>
   <div>3</div>
   <div>4</div>
   <div>5</div>
   <div>6</div>
</div>

<div class="wrapper">
   <div>1</div>
   <div>2</div>
   <div>3</div>
   <div>4</div>
   <div>5</div>
   <div>6</div>
   <div>7</div>
</div>

<table>
<tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td></tr>
</table>

<script>
document.querySelectorAll('.wrapper').forEach((a)=> {
    a.style.gridTemplateColumns = '62px repeat('+(a.children.length-1)+',1fr)';
})
</script>


и посмотрите итоговые размеры в разметке отладчика, из чего они складываются. А таблица она и без посторонней помощи получится.

Последний раз редактировалось laimas, 01.10.2019 в 07:55.
Ответить с цитированием