#html #css #sass
#HTML #css #sass
Вопрос:
Я пытаюсь создать всплывающую карточку, но карточка не выравнивается по вертикали. Я использовал position: absolute;
для позиционирования, но карточка отображается внизу.
CSS (SASS)
.popup {
height: 100vw;
width: 100%;
position: fixed;
top: 0;
left: 0;
background-color: rgba($color-black, 0.8);
z-index: 3000;
amp;__content {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 75%;
height: 50%;
background-color: $color-white;
box-shadow: 0 2rem 4rem rgba($color-black, 0.2);
border-radius: 3px;
display: table;
overflow: hidden;
}
Всплывающее окно реализовано не полностью, я проверял, где будет отображаться элемент.
Этот код показывает белый прямоугольник внизу, а не посередине. Где я надеялся, что это будет.
HTML
<div class="popup">
<div class="popup__content">
amp;nbsp;
</div>
</div>
popup
Класс является прямым дочерним элементом body
, поэтому на него не влияют никакие другие классы. Кто-нибудь видит, где я мог бы облажаться.
Ответ №1:
попробуйте это:
.popup {
height: 100vw;
width: 100%;
position: fixed;
top: 0;
left: 0;
background-color: rgba($color-black, 0.8);
z-index: 3000;
display:flex;
justify-content:center;
align-items:center;
amp;__content {
transform: translate(-50%, -50%);
width: 75%;
height: 50%;
background-color: $color-white;
box-shadow: 0 2rem 4rem rgba($color-black, 0.2);
border-radius: 3px;
display: table;
overflow: hidden;
}
Ответ №2:
Попробуйте использовать display: flex с justify-content, align-items вместо position: fixed. Это будет конструктивный выбор для комфортного будущего в будущем.
Пожалуйста, обратитесь к следующему URL-адресу через переводчик Google. Этот сайт хорошо детализирован.
Ответ №3:
Используйте position: fixed;
также для дочернего контейнера ( amp;__content
). position: absolute;
относится к следующему более высокому предку с position: relative
, так что night не подходит в каждой ситуации.
Ответ №4:
.popup {
height: 100%;
width: 100%;
position: fixed;
top: 0;
left: 0;
background-color: red;
z-index: 3000;
}
.popup__content {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 100px;
height: 100px;
background-color: white;
box-shadow: 0 2rem 4rem green;
border-radius: 3px;
}
<div class="popup">
<div class="popup__content">
amp;nbsp;
</div>
</div>