我正在尝试将模态窗口居中在浏览器页面中。我想要居中它,使其适用于所有屏幕的响应式设计。
我正在尝试将模态窗口居中在浏览器页面中。我想要居中它,使其适用于所有屏幕的响应式设计。
使用position:absolute,假设您的模态框为300x300
.modal {
width: 300px;
height: 300px;
position: absolute;
left: 50%;
top: 50%;
margin-left: -150px;
margin-top: -150px;
}
使用 display:table 另一种方法是将其设置为表格形式显示
<div class="modal">
<div class="body">
<div class="content">
Content goes here
</div>
</div>
</div>
<style>
.modal {display:table;}
.body {display:table-cell; vertical-align:middle; text-align:center;}
</style>
left: 50%;
的问题在于它没有考虑到模态框本身的宽度。 - Alexander Suraphelleft: 50%; margin-left: -(宽度的50%)
可以确保模态窗口居中。 - Wylliam Judd只使用 CSS 就可以使 Bootstrap 模态框在任何屏幕尺寸下居中。
.modal {
text-align: center;
padding: 0!important;
}
.modal:before {
content: '';
display: inline-block;
height: 100%;
vertical-align: middle;
margin-right: -4px;
}
.modal-dialog {
display: inline-block;
text-align: left;
vertical-align: middle;
}
浏览器和屏幕兼容解决方案在全屏预览中尝试这个
.modal {
width: 100px;
height: 100px;
margin:0 auto;
display:table;
position: absolute;
left: 0;
right:0;
top: 50%;
border:1px solid;
-webkit-transform:translateY(-50%);
-moz-transform:translateY(-50%);
-ms-transform:translateY(-50%);
-o-transform:translateY(-50%);
transform:translateY(-50%);
}
<div class="modal"></div>
.modal
{
position: fixed;
left: 50%;
}
<div id="containerDiv">
<!--HTML modal -->
</div>
#containerDiv{
margin : 0 auto;
}
当显示模态框时,您应该使用display:flex
而不是像大多数人通常做的block
。然后:
<div class="modal" id="modal">
<div class="modal-content">
What you want !
</div>
</div>
和 CSS:
.modal {
width: 100%;
height: 100%;
justify-content: center;
align-items: center;
}
记得在你的 modal-content
中放置一个关闭按钮,因为屏幕上的其他元素将无法使用,因为 modal
div覆盖了整个屏幕大小。
如果您想在窗口中央显示模态框,请按照以下步骤进行操作:
.modal {
text-align: center;
}
.modal-dialog {
display: flex;
align-items: center;
min-height: calc(100% - 0rem);
}
.modal {
position: fixed;
background-color: rgba(0, 0, 0, 0.75);
top: 0;
right: 0;
bottom: 0;
left: 0;
transition: all 0.3s;
}
.modal-content {
background-color: white;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
padding: 2% 7%;
border-radius: 0.5rem;
}
你可以简单地计算顶部和左侧来使你的模态框居中:
position: absolute;
top: calc(50% - halfOfModalHeight);
left: calc(50% - halfOfModalWidth);
<div class="modal">
in your Content
</div>
以你的风格:
.modal {
display: table;
margin: 0 auto;
}