这两个解决方案仅需要两个嵌套元素。
首先 -相对和绝对定位(如果内容为静态)(手动居中)。
.black {
position:relative;
min-height:500px;
background:rgba(0,0,0,.5);
}
.message {
position:absolute;
margin: 0 auto;
width: 180px;
top: 45%; bottom:45%; left: 0%; right: 0%;
}
https://jsfiddle.net/GlupiJas/5mv3j171/
或用于流畅的设计 -对于确切的资源中心,请使用以下示例:
.message {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
https://jsfiddle.net/GlupiJas/w3jnjuv0/
如果内容超过窗口高度的50%,则需要设置“最小高度”。您还可以通过移动设备和平板电脑设备的媒体查询来控制此高度。但前提是您要使用响应式设计。
我想您可能会更进一步,如果出于某种原因需要使用简单的JavaScript / JQuery脚本来控制最小高度或固定高度。
第二 - 如果内容是流畅的,您还可以使用具有垂直对齐方式和文本对齐居中的table和table-cell的CSS属性:
/*in a wrapper*/
display:table;
和
/*in the element inside the wrapper*/
display:table-cell;
vertical-align: middle;
text-align: center;
完美地工作和缩放,通常用作响应式Web设计解决方案,具有可控制对象宽度的网格布局和媒体查询。
.black {
display:table;
height:500px;
width:100%;
background:rgba(0,0,0,.5);
}
.message {
display:table-cell;
vertical-align: middle;
text-align: center;
}
https://jsfiddle.net/GlupiJas/4daf2v36/
我更喜欢使用表格解决方案来实现精确的内容居中,但是在某些情况下,相对绝对定位会做得更好,特别是如果我们不想保持内容对齐的确切比例。