我想垂直和水平居中一些内容覆盖图像幻灯片(flexslider)。有一些类似的问题,但我找不到一个令人满意的解决方案,直接适用于我的具体问题。由于FlexSlider的限制,我不能在我的实现中使用img标签上的position: absolute;
。为什么width:100%不能在div {display:table-cell}上工作?
我几乎有下面的解决方法工作。唯一的问题是我无法获得宽度&高度声明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伎俩。
我需要上面的文本 - 覆盖在图像的顶部。 – timshutes
对不起,我跳了一把枪,看到我的编辑 – woojoo666
需要注意的是,当您只是将内嵌文本与标记对齐时,Flexbox居中会表现得很滑稽 - 然后将其视为“内嵌块”元素。 – Paracetamol