Por favor, considere el siguiente código HTML:CSS: posición vertical inesperada de elementos "inline-block"
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<title>test</title>
<style>
.section {
display: inline-block;
border: 1px dashed blue;
}
.outer {
border: 1px dashed red;
margin: 10px;
}
</style>
</head>
<body>
<div style="height: 500px; width: 200px;" class="section">a
<div style="height: 100px;" class="outer">1A<br />1B</div>
</div>
<div style="height: 500px; width: 200px;" class="section">b
<div style="height: 200px;" class="outer">2</div>
<div style="height: 200px;" class="outer">3<br />4<br />5</div>
</div>
</body>
</html>
Dado que ambos divs con clase ".Sección" tienen la misma altura, y están en línea bloques, yo esperaría que estuvieran alineados verticalmente. Sin embargo, el primero de estos divs se empuja hacia abajo, de modo que el texto "1B" se alinea con la línea de texto "5" de la otra sección. Agregar o eliminar líneas en cualquier div tiene un impacto directo en la posición vertical de mi primera sección.
No veo la lógica de esto, y tampoco puedo encontrar la respuesta en la documentación oficial de CSS3. Sin embargo, no parece ser un error, ya que es idéntico en Chrome 8, Safari 5, Opera 9.5 y Firefox 4 beta ... no intenté IE, ya que no es una referencia de todos modos.
Estoy buscando una explicación racional para este fenómeno. Por supuesto, hay varias soluciones (por ejemplo, cambiar el bloque en línea a la tabla en línea soluciona el problema, o podría usar bloques flotantes normales, etc.). Sin embargo, estoy tratando de comprender este comportamiento.
Afortunadamente hay alguien más sabio que yo que puede explicar esto.
Ejemplo en vivo here.
¿Por qué estás mezclando el estilo exterior y en línea? – Kyle
Para ayudar a probar esto, he creado una [página JSFiddle] (http://jsfiddle.net/QfPKD/) usando el código original (ligeramente modificado para usar menos estilos en línea, pero con el mismo efecto). – Spudley
Hice lo mismo: D Excepto que no modificó los estilos en línea. – Kyle