Come si centra verticalmente un testo nel mezzo di un contenitore banner con tag immagine?
Il mio risultato di ricerca sta usando display: table / display:tabella-cella o display: blocco in linea ma quelle soluzioni non funzionavano quando abbiamo il tag immagine. Penso di dover avere una posizione assoluta per il testo, ma poi come assicurarsi che sia sempre centrato verticalmente e orizzontalmente quando si ridimensiona la finestra?
Ecco html:
<div class="banner">
<img class="" src="/images/http://placehold.it/1440x410">
<div class="container">
<div class="banner-text">
<h1>Header Text</h1>
<h3>Sub Header Text</h3>
<a href="#"> CTA</a>
</div>
</div>
</div>
e Css come di seguito:
.banner{
width: 100%;
position: relative;
}
.banner img{
width: 100%;
}
.container{
margin-left: auto;
margin-right: auto;
width: 100%;
}
.banner-text{
position: absolute;
top: 50%;
left: 50%;
}
http://codepen.io/neginbasiri/pen/grEmMx
Mi chiedo quale sia la soluzione per questo?
Grazie
risposte:
2 per risposta № 1aggiungi questa trasformazione alla classe elencata qui:
.banner-text{
position: absolute;
top: 50%;
left: 50%;
transform: translateX(-50%) translateY(-50%); /* or of course - translate(-50%, -50%); */
}
Dai un'occhiata a questa guida per maggiori informazioni: Centraggio nei CSS
1 per risposta № 2
Il modo più conciso per fare ciò di cui hai bisogno è il seguente:
.banner-text {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%); /* add me */
}