Я пытаюсь создать модальный экран с помощью CSS, HTML. Код ниже:
.container {
display: flex;
justify-content: center;
align-items: center;
width: 100%;
height: 100vh;
position: absolute;
top: 0;
left: 0;
z-index: 1;
background-color: rgba(0, 0, 0, 0.6);
}
.content {
border-radius: 4px;
background-color: white;
padding: 16px;
height: 80vh;
width: 80vw;
}
.title {
padding: 16px;
}
.body {
padding: 16px;
height: 100%;
width: 100%;
background-color: blue;
min-height: 0;
}
<div class = "container">
<div class = "content">
<div class = "title">The bugged modal screen</div>
<div class = "body">
This is overflowing
</div>
</div>
</div>
Как видно из примера, дочерний элемент flex (синий контент) переполняет родительский элемент. Я пытался использовать min-height: 0 Sees, чтобы не работать на меня. Помощь оценила, чтобы поместить ребенка внутрь в пределах его границ.
Вы указали ширину 100%, но использовали отступ, из-за которого он переполняет часть заполнения, аналогично, вы указали высоту 100%, но есть еще один div, который занимает некоторую высоту, и эта высота переполняется.
В качестве примечания я бы, вероятно, использовал position: fixed; top: 0; bottom: 0; left: 0; right: 0 для контейнера, потому что absolute относится к его родителю: position: relative
(1) box-sizing:border-box для исправления проблемы с шириной (первый дубликат) (2) вам нужно заполнить оставшуюся высоту, а не использовать height:100% (второй и третий дубликаты)
Добавьте flex правила в контейнер .content. Так:
.content {
...
display: flex;
flex-direction: column;
}
Кроме того, удалите width: 100% из .body.
.container {
display: flex;
justify-content: center;
align-items: center;
width: 100%;
height: 100vh;
position: absolute;
top: 0;
left: 0;
z-index: 1;
background-color: rgba(0, 0, 0, 0.6);
}
.content {
border-radius: 4px;
background-color: white;
padding: 16px;
height: 80vh;
width: 80vw;
display: flex;
flex-direction: column;
}
.title {
padding: 16px;
}
.body {
padding: 16px;
height: 100%;
/*width: 100%;*/
background-color: blue;
}
<div class = "container">
<div class = "content">
<div class = "title">The bugged modal screen</div>
<div class = "body">
This is overflowing
</div>
</div>
</div>
@ Мендес, я добавил описание в ответ. Всегда рад помочь.
Уменьшите высоту и удалите ширину (например: высота: 90%)