Este problema me ha estado molestando mucho por un tiempo.
En toda la web (y en marcos CSS como Bootstrap), REM
se usa comúnmente para todo, desde relleno (ejemplo: padding: 2rem;
) hasta border-radius (ejemplo: border-radius: 1rem;
).
Ok, bien, eso es razonable. Pero, ¿por qué no hay también una unidad global que incluya un line-height
modificador? Suponiendo que está utilizando una cuadrícula típica que se basa en tipografía, su escala de tipo MÁS su interlineado de tipo es su verdadera línea de base y, por lo tanto, parece una unidad MUCHO más importante que simplemente REM
.
Por ejemplo, supongamos que REM
está configurado en 16 px y el texto de su cuerpo line-height
es 1.6
.:
body {
font-size: 16px;
line-height: 1.6;
}
Esta es una configuración relativamente común. Entonces, ¿por qué REM
(lo que normalmente se interpretará como 16px
en este ejemplo) se usa en casi todas partes y no una unidad que represente la línea de base real de la cuadrícula (que normalmente será 25.6px
de 16px * 1,6)?
En otras palabras, ¿por qué esta práctica estándar
my-padding: {
padding: 2rem; // typically will be 32px;
}
pero no esto
my-padding: {
padding: 2rlh; // typically will be 51.2px;
}
(Me doy cuenta de que rlh
, o root line height
, no existe en CSS. Mi pregunta es ¿ por qué no existe?).
La razón de esto es que es demasiado específico para justificar el costo.
En su caso específico de querer usar root line-height
, la respuesta también es que la mayoría de las veces se line-height
basa en font-size
(es por defecto), por lo que sería inútil ya que ya tenemos rem
.
De manera más general, podemos preguntarnos: "¿Qué pasa si quiero usar la raíz margin-top
como espaciado para el resto de mis márgenes y relleno? ¿Por qué no hay una rmt
unidad para eso?" y hacer esto para cualquier propiedad. Rápidamente vemos que es una tontería tener unidades para cada propiedad. em
y rem
se eligieron en función de font-size
porque proporciona una buena base para diseñar otras propiedades.
Dicho esto, si desea utilizar la altura de la línea (o cualquier otro valor) en los valores de otras propiedades, puede utilizar las propiedades personalizadas de CSS (esencialmente variables) o utilizar un preprocesador de CSS como SASS o LESS.
Caí
tuamigozak
REM
para la altura de la línea.Caí
line-height: 2rem;
entoncespadding: 4rem;
es lo mismo que hacerpadding: 2rlh;
Arte ligero digital
tuamigozak
CSS
.tuamigozak
EM
también aREM
. Si quiero configurar el relleno en relación con el de un padrefont-size * line height
, no hay una unidad para eso además de codificar los valores.Caí
Caí
tuamigozak
Yorik
DA01
DA01