He intentado encontrar cómo centrar el texto verticalmente, pero no puedo encontrar una respuesta satisfactoria. La mejor respuesta que encontré hasta ahora es this. Esto hace que parezca que me permite centrar el texto verticalmente, pero si uso esto y agrego más texto, solo se extiende al fondo y no se vuelve a centrar, como lo que sucede horizontalmente.Cómo centrar texto verticalmente con css
Nota, estoy buscando una solución de CSS única, por lo que no javascript por favor. Nota, quiero poder agregar varias líneas de texto.
<?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>
Al final, quiero tener 3 bloques, cada uno de ellos centrando el texto en el medio. Estos textos son editados por los clientes, por lo que deben poder abarcar varias líneas. Actualmente, el texto comienza en la parte superior del cuadro y va hacia abajo, al final, quiero que el texto comience en un punto para que el centro del cuerpo del texto quede posicionado en el centro del cuadro.
Mi solución final, Nota: vertical-align no funciona si tiene flotación: queda en el mismo 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>
Se puede publicar su código actual? La primera pregunta es siempre: "¿en qué quieres que se centre el texto?" – ptriek
Hay una variedad de métodos disponibles aquí: http://www.vanseodesign.com/css/vertical-centering/ Si pudiera compartir el código que está utilizando, quizás podamos ayudarlo con una solución específica. –
la otra manera css es tener el texto en una celda de tabla; de lo contrario, deberá usar js – mreq