2011-11-21 20 views
12

Diferencia entre la línea de base de los bloques en línea vacíos y no vacíos

div { 
 
    display: inline-block; 
 
    width: 100px; 
 
    height: 100px; 
 
    background: #aef; 
 
    vertical-align: baseline; 
 
}
base <div>×</div> <div></div> line

El bloque de línea vacía se alinea de manera diferente de la que contiene texto. Esto se puede solucionar especificando un valor diferente de vertical-align, pero me pregunto por qué está sucediendo esto. ¿Puedes señalar una parte relevante de la especificación de CSS?

Respuesta

11

De CSS2: Line height calculations

vertical-align: baseline - alinear la línea de base de la caja con la línea de base de la caja padre. Si la caja no tiene una línea de base, alinee en la parte inferior de la caja con la línea base de los padres.

+0

De esto es de lo que estaba hablando. Por lo tanto, debe usar un elemento principal para establecer la alineación de sus hijos. Ahora está alineando el contenido de su elemento principal. Suspiro. – tuze

+0

@tuze considere este ejemplo: http://jsfiddle.net/rKaXH/ como puede ver, no se necesitan elementos principales para establecer la alineación. –

+0

Aún está comparando elementos vacíos con elementos normales. Hay algunas diferencias entre ellos. Por ejemplo, los elementos vacíos se muestran en línea de forma predeterminada. Pero pueden tener una propiedad de ancho o alto independientemente de los elementos en línea normales. http://www.w3.org/TR/html-markup/syntax.html#syntax-elements – tuze

Cuestiones relacionadas