2010-11-03 8 views
11

Si doy un line-height a un elemento de bloque como h1 añade el espacio por encima y por debajo de la línea de cada texto, significa que el elemento no empieza en la misma posición superior . ¿Qué pasa si solo quiero un espacio debajo de cada línea? Sé que vertical-align solo funciona con elementos en línea.elementos de bloque align en la parte superior cuando se utiliza line-height

También reconocí que un texto de un elemento de bloque como una etiqueta p no está en la parte superior con altura de línea "normal", de forma predeterminada. Si agrego un color de fondo al elemento, el color también es visible a unos pocos píxeles sobre el texto. ¿Por qué?

Respuesta

15

TLDR: Use position: relative y un valor superior negativo para simularlo.

Explicación: Tienes razón. La altura de línea siempre se agrega encima y debajo de cada carácter. Entonces, si el tamaño de fuente es 12px y tiene una altura de línea de 18px, obtendrá 3px arriba y 3px debajo de cada "línea". Cada uno de esos espacios de 3px se llama "medio líder".

Sin embargo, puede usar position: relative con un valor superior negativo para que parezca que solo hay espacio agregado debajo de cada línea.

Digamos que desea tener 8px de espacio entre cada línea en lugar de solo 6px del ejemplo anterior (18px/12px = 6px = 3px en la parte superior + 3px en la parte inferior). Para hacer esto, aumente la altura de la línea de 18px a 20px para obtener el medio líder de 4px y otorgue un total de 8px de espacio entre las líneas. Luego agregue position: relative; top: -2px para restablecer la línea al mismo lugar donde estaba cuando la altura de la línea era 18px.

Aunque el navegador todavía está agregando 4px de espacio por encima y por debajo de cada línea, el posicionamiento vertical negativo hará que parezca que se cortó el espaciado superior adicional.

+1

Sé que esta es una respuesta anterior, pero actualmente la uso con em's y pensé en agregar algo de mi opinión. Si está usando em, recuerde que la altura del texto es '1em'. Si configura 'line-height' en' 1.5em', querrá configurar 'top' para que sea' -0.5em'. – David

+0

En realidad, es probable que desee establecer la mitad de ese @David, por lo que sería -0.25em – chaimp

Cuestiones relacionadas