Почему input ужимается, а div расширяет родительский блок?
Ссылка скопирована
Есть код:
<div class="parent"> <input class="child" /> <div>static content</div> </div> |
.child { ... text-overflow: ellipsis; white-space: nowrap; overflow: hidden; } .parent { display: flex; align-items: center; } |
input ведет себя как ожидается
Но если input заменить на div, задав ему тот же класс, т.e. абсолютно те же самые стили, то он раздвинет родительский элемент.
Почему он так себя ведет и как это пофиксить?
Дополнительно:
А стили родительского блока предлагается угадать?
Задавайте размер, например, в процентах для дочерних элементов.
В вашем случае примерно так
.parent > * { width: 50%; max-width: 50%; } |
snippet
похоже какой-то части истории вы не показываете.
Нужно решить такую задачу?
Заказать помощь
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Лучший ответ
1
Другие ответы (0)
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопроскомментарий
Вам также может быть интересно
VPN
Как правильно настроить vless для Android TV?
1 ответ
Pyrogram
Как правильно зарегистрировать юзер бота в Telegram?
1 ответ
печатные-платы
Как заставить запускаться программу M3.exe от компании Hanxing AOI в инспекционной машине на Windows 7 Pro?
1 ответ
SMM
Из-за чего не сохраняется видео в мобильной программе blackmagic?
1 ответ

Проблема, когда элемент input ужимается, а элемент div расширяет родительский блок, может возникать из-за различных свойств CSS, которые применяются к этим элементам.
Одной из причин может быть ширина, которая задана для элемента input. По умолчанию, элемент input имеет ширину, которая зависит от контента внутри него, но если задать ему фиксированную ширину или процентное значение, то элемент input будет ужиматься или растягиваться в зависимости от этого значения.
С другой стороны, элемент div, как блочный элемент, по умолчанию занимает всю доступную ширину родительского блока. Если задана ширина для родительского блока, то элемент div будет растягиваться до этой ширины.
Чтобы исправить данную проблему, можно попробовать следующие решения:
1. Установить для элемента input значение ширины по умолчанию или задать ему нужную ширину.
2. Для элемента div также можно установить ширину по умолчанию или задать нужное значение ширины.
3. Также можно использовать свойство display: inline-block; для элемента input, чтобы он вел себя как блочный элемент, но при этом сохранял свои инлайновые свойства.
4. Использовать свойство box-sizing: border-box; для элементов input и div, чтобы учитывать padding и border в расчетах ширины элемента.
Эти решения помогут сделать элемент input и div поведение более предсказуемым и соответствующим вашим требованиям по ширине элементов.