Основная проблема, с визуальной точки зрения, заключается в justify-content: center
.
Поскольку ваш контейнер установлен на width: 100px
, элемент сетки будет центрироваться горизонтально в этом пространстве, переполняя контейнер в равной степени с обеих сторон.,Это приводит к тому, что левая сторона исчезает за пределами экрана и становится полностью недоступной (даже с помощью прокрутки).
(для полного объясненияо таком поведении см .: Невозможно прокрутить к вершине гибкого элемента, который переполняет контейнер )
При переключении на width: 200px
контейнеру достаточно места дляприспособить элементы сетки, чтобы переполнение не происходило.
Самое быстрое и простое решение этой проблемы - удалить justify-content: center
.В любом случае это бессмысленно, потому что контейнер меньше, чем контент, и вы не можете центрировать контент без свободного места в контейнере.Так что justify-content
ничего не делает.
Если вы хотите, чтобы все элементы сетки помещались внутри контейнера, добавьте min-width: 0
кinput
элемент.Это позволяет input
сжиматься ниже размера его содержимого и min-width: auto
по умолчанию.
(для полного объясненияо таком поведении см. Запрет содержимого от расширения элементов сетки )
.container {
grid-template-columns: 1fr 24px;
display: grid;
width: 100px;
border: 2px dashed red;
}
input {
min-width: 0;
}
<div class="container">
<input value="hello" />
<div class="other-thing">x</div>
</div>
Обратите внимание, что ширина по умолчанию и минимальная ширина элементов input
раньше было легко увидеть с помощью инструментов инспектора Chrome / Firefox.Похоже, это больше не так.Я не смог найти настройки в стилях агента пользователя.Мы должны посмотреть на вычисленные значения для руководства или просто предположить, что есть настройки ширины и минимальной ширины.