#html #css
Вопрос:
С таблицей, которая имеет автоматические поля и ячейки с заданной шириной, как я могу сделать так, чтобы ширина других ячеек составляла процент от оставшейся ширины?
div {
padding: 10px;
background: purple;
}
section {
background: white;
width: calc(50% - 60px);
display: inline;
}
section:first-child {
width: 60px;
}
<div>
<section>cell 1</section>
<section>cell 2</section>
<section>cell 3</section>
</div>
Ответ №1:
Это идеальная работа для grid
. Используйте display: grid;
и grid-template-column: 60px 1fr 1fr;
(1fr означает, что столбец 2-го и 3-го имеет 1 долю от оставшегося размера таблицы).
Бонус: используйте разрыв сетки для обработки разницы между элементами.
div {
display: grid;
grid-template-columns: 60px 1fr 1fr;
gap: 10px;
padding: 10px;
background: purple;
}
section {
background: white;
display: grid;
place-items: center;
}
<div>
<section>cell 1</section>
<section>cell 2</section>
<section>cell 3</section>
</div>
Комментарии:
1. пока что хороший код, но вы могли бы оптимизировать свою хакерскую симуляцию границ. Для имитации коллапса границ в сетке вы можете использовать
box-shadow
: удалитеbackground-color
как с родительских, так и с карточек. и добавьтеsection { box-shadow:0 0 0 10px purple; }
2. Ну, это не ложь, но немного выходит за рамки.