Puedes usar line-height: 50px;
, no necesitarás vertical-align: middle;
allí.
Manifestación
Lo anterior fallará si tiene varias líneas, por lo que en ese caso puede ajustar su texto usando span
y luego usar display: table-cell;
y, display: table;
junto con vertical-align: middle;
, no olvide usar width: 100%;
para#abc
Manifestación
#abc{
font:Verdana, Geneva, sans-serif;
font-size:18px;
text-align:left;
background-color:#0F0;
height:50px;
display: table;
width: 100%;
}
#abc span {
vertical-align:middle;
display: table-cell;
}
Otra solución en la que puedo pensar aquí es usar la transform
propiedad con translateY()
donde Y
obviamente significa Y Eje. Es bastante sencillo ... Todo lo que necesita hacer es establecer la posición de los elementos absolute
y luego la posición 50%
desde el top
eje y traducirlo desde su eje con negativo-50%
div {
height: 100px;
width: 100px;
background-color: tomato;
position: relative;
}
p {
position: absolute;
top: 50%;
transform: translateY(-50%);
}
Manifestación
Tenga en cuenta que esto no será compatible con los navegadores más antiguos, por ejemplo, IE8, pero puede hacer IE9 y otras versiones más antiguas de Chrome y Firefox usando los prefijos -ms, -moz
y -webkit
respectivamente.
Para obtener más información sobre transform
, puede consultar aquí .
Es simple: dale al padre esto:
y déle al niño div (s) esto:
¡Eso es!
fuente
display:table;
al padre para que funcione.Antigua pregunta, pero hoy en día CSS3 hace que la alineación vertical sea realmente simple .
Simplemente agregue al
#abc
siguiente CSS:Demo simple
Pregunta de demostración original actualizada
Ejemplo simple:
fuente
CSS3
?Encontré esta solución por Sebastian Ekström. Es rápido, sucio y funciona muy bien. Incluso si no conoce la altura de los padres:
Lee el artículo completo aquí .
fuente
transform-style: preserve-3d;
:!Puede usar la altura de línea tan grande como la altura del div. Pero para mí la mejor solución es esta ->
position:relative; top:50%; transform:translate(0,50%);
fuente
¿Qué hay de agregar
line-height
?Violín, altura de línea
O
padding
en#abc
. Este es el resultado con rellenoActualizar
Agregue en su css:
El resultado . Espero que esto sea lo que buscas.
fuente
Prueba esto:
Otro método para centrar un div:
fuente
fuente
Use la propiedad CSS translateY para centrar verticalmente su texto en su contenedor
Y luego aplíquelo a su DIV que contiene
Ajuste el porcentaje de traducción para satisfacer sus necesidades. Espero que esto ayude
fuente
Este código es para alineación vertical central y horizontal central sin especificar altura fija:
fuente