我正在尝试将覆盖图像幻灯片(flexslider)的一些内容垂直和水平居中。有一些与此类似的问题,但我找不到直接适用于我的具体问题的令人满意的解决方案。由于 FlexSlider 的限制,我无法position: absolute;
在我的实现中使用 img 标签。
我几乎有以下工作的解决方法。唯一的问题是我无法让宽度和高度声明在具有该属性 的inner-wrapper
div 上工作。display: table-cell
这是标准行为,还是我的代码遗漏了什么?如果这是标准行为,我的问题的最佳解决方案是什么?
HTML
<ul>
<li>
<img src="#">
<div class="outer-wrapper">
<div class="inner-wrapper">
<h1>My Title</h1>
<h5>Subtitle</h5>
</div>
</div>
</li>
</ul>
CSS
html, body {
margin: 0; padding: 0;
width: 100%; height: 100%;
}
ul {
background: #CCC;
height: 100%;
width: 100%;
list-style-position: outside;
margin: 0; padding: 0;
}
li {
width: 100%;
display: table;
}
img {
width: 100%;
height: 410px;
}
.outer-wrapper {
position: absolute;
width: 100%;
height: 100%;
top: 0;
margin: 0; padding: 0;
}
.inner-wrapper {
display: table-cell;
vertical-align: middle;
text-align: center;
width: 100%;
height: 100%;
}
注意:居中的内容将超过 1 个元素,所以我不能使用 line-height 技巧。