Ho cercato di trovare come centrare il testo verticalmente, ma non riesco a trovare una risposta soddisfacente. La migliore risposta che ho trovato fino ad ora è this. Questo mi fa sembrare che mi permetta di centrare il testo verticalmente, ma se lo uso e aggiungo altro testo, viene esteso solo verso il basso e non viene ricentrato, come accade in orizzontale.Come centrare il testo verticalmente con css
Nota, sto cercando una soluzione solo CSS, quindi non javascript per favore. Nota, voglio poter aggiungere più righe di testo.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<style type="text/css">
div#maindiv {
width: 810px;
height: 99px;
background-color: black;
margin: 0px;
padding: 0px;
color: white;
font-family: Sans-serif;
text-align: center;
display: table;
}
div#maindiv span {
font-size: 1.1em;
}
div#part1 {
width: 270px;
height: 99px;
background-color: #6DCAF2;
float: left;
vertical-align: middle;
position: relative;
}
div#horizon1 {
background-color: green;
height: 1px;
left: 0;
overflow: visible;
position: absolute;
text-align: center;
top: 50%;
visibility: visible;
width: 100%;
}
div#content1 {
background-color:green;
height:99px;
width: 270px;
position: absolute;
top: -50px;
}
</style>
<title>XHTML-Strict</title>
</head>
<div id="maindiv">
<body>
<div id="part1">
<div id="horizon1">
<div id="content1">
<div id="bodytext1">
<span>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas dolor augue, faucibus quis sagittis
<span>
</div>
</div>
</div>
</div>
</div>
</body>
</html>
Alla fine, voglio avere 3 blocchi, ognuno dei quali centra il testo nel mezzo. Questi testi sono modificati dai client in modo che devono essere in grado di estendersi su più righe. Attualmente il testo inizia nella parte superiore della scatola e va verso il basso, alla fine, voglio che il testo inizi in un punto in modo che il centro del corpo del testo sia posizionato al centro del riquadro.
La mia soluzione finale, Nota: l'allineamento verticale non funziona se si dispone di float: lasciato nello stesso div.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<style type="text/css">
div#maindiv {
width: 810px;
height: 99px;
background-color: black;
margin: 0px;
padding: 0px;
color: white;
font-family: Sans-serif;
}
div#maindiv span {
font-size: 1.1em;
}
div.part {
width: 262px;
height: 99px;
padding: 0px;
margin: 0px;
padding: 4px;
border: 0px;
color: white;
text-align: center;
display: table-cell;
vertical-align: middle;
}
div.bgc1 {
background-color: #6DCAF2;
}
div.bgc2 {
background-color: #2A4B9A;
}
div.bgc3 {
background-color: #FF8A00;
}
</style>
<title>XHTML-Strict</title>
</head>
<div id="maindiv">
<body>
<div style="float: left;">
<div class="part bgc1">
<span>
Vegeta! What does the scouter say about his power level?!
</span>
</div>
</div>
<div style="float:left;">
<div class="part bgc2">
<span>
It's over NINE THOUSAAAAAAAAAND!
</span>
</div>
</div>
<div style="float:left;">
<div class="part bgc3">
<span>
What NINE THOUSAND? There is no way that can be right!
</span>
</div>
</div>
</div>
</body>
</html>
potete inserire il codice corrente? la prima domanda è sempre: 'cosa vuoi inserire al centro del testo?' – ptriek
Ci sono vari metodi disponibili qui: http://www.vanseodesign.com/css/vertical-centering/ Se potessi condividere il codice che stai utilizzando, forse possiamo aiutarti con una soluzione specifica. –
l'altro modo css è di avere il testo in una cella di tabella; altrimenti dovrai usare js – mreq