私は画像スライド(フレックススライダ)の上にいくつかのコンテンツを縦横に配置しようとしています。これに類似の質問がいくつかありましたが、私の特定の問題に直接適用される満足のいく解決策を見つけることができませんでした。 FlexSliderの制限のため、実装ではimgタグにposition: absolute;
を使用できません。width:100%がdiv {display:table-cell}で動作しないのはなぜですか?
私はほとんど以下の回避策が働いています。唯一の問題は、幅&の高さの宣言を 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つの要素になりますので、私は行の高さのトリックを使用することはできません。
jsFiddle。 .outer-wrapper
内display:table;
を置く
私は上記のテキストが必要です - イメージの上にオーバーレイされます。 – timshutes
申し訳ありませんが、私は銃を飛ばしました。私の編集を参照してください – woojoo666
フレックスボックスセンタリングは、インラインテキストをマークアップの中心に置くと面白いことに注意してください - これは 'inline-block'要素のように扱われます。 – Paracetamol