Alineación vertical CSS de elementos en línea/bloque en línea
Estoy intentando alinear varios inline
componentes inline-block
verticalmente en un archivo div
. ¿Cómo es que span
en este ejemplo insiste en ser empujado hacia abajo? Probé ambos vertical-align:middle;
y vertical-align:top;
, pero nada cambia.
HTML:
<div>
<a></a><a></a>
<span>Some text</span>
</div>
CSS:
a {
background-color:#FFF;
width:20px;
height:20px;
display:inline-block;
border:solid black 1px;
}
div {
background:yellow;
vertical-align:middle;
}
span {
background:red;
}
RESULTADO
:
VIOLÍN
vertical-align
se aplica a los elementos que se alinean, no a su elemento principal. Para alinear verticalmente los hijos del div, haga esto en su lugar:
div > * {
vertical-align:middle; // Align children to middle of line
}
Ver: http://jsfiddle.net/dfmx123/TFPx8/1186/
NOTA : vertical-align
es relativo a la línea de texto actual, no a la altura completa del padre div
. Si desea que el padre div
sea más alto y aún tenga los elementos centrados verticalmente, establezca la div
propiedad line-height
en lugar de su height
. Siga el enlace jsfiddle anterior para ver un ejemplo.
Cede y . vertical-align:top;
_ Como esto:a
span
a, span{
vertical-align:top;
}
Mira esto http://jsfiddle.net/TFPx8/10/
Simplemente haciendo flotar ambos elementos hacia la izquierda se logra el mismo resultado.
div {
background:yellow;
vertical-align:middle;
margin:10px;
}
a {
background-color:#FFF;
width:20px;
height:20px;
display:inline-block;
border:solid black 1px;
float:left;
}
span {
background:red;
display:inline-block;
float:left;
}
Para ajustar la posición de un inline-block
elemento, utilice arriba e izquierda:
position: relative;
top: 5px;
left: 5px;
¡Gracias CSS-Tricks !