Sto provando a centrare verticalmente e orizzontalmente alcuni contenuti sovrapponendo una diapositiva dell'immagine (flexslider). C'erano alcune domande simili a questa, ma non sono riuscito a trovare una soluzione soddisfacente che si applicasse direttamente al mio problema specifico. A causa delle limitazioni di FlexSlider, non posso usare position: absolute;
sul tag img nella mia implementazione.Perché la larghezza: il 100% non funziona su div {display: table-cell}?
Ho quasi difficoltà a lavorare sotto. L'unico problema è che non riesco a ottenere la larghezza delle dichiarazioni di altezza & su inner-wrapper
div con la proprietà display: table-cell
.
Questo comportamento standard o mi manca qualcosa con il mio codice? Se si tratta di un comportamento standard, qual è la migliore soluzione al mio problema?
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%;
}
Nota: il contenuto centrato saranno più di 1 elemento, quindi non posso utilizzare il trucco line-height.
Ho bisogno del testo sopra - sovrapposto sopra l'immagine. – timshutes
Spiacente, ho saltato una pistola, vedere la mia modifica – woojoo666
Va notato che il centraggio della flexbox si comporta in modo divertente quando si concentra solo il testo inline con markup - questo viene trattato come un elemento 'inline-block'. – Paracetamol