Cómo elegir la mejor unidad de CSS para crear mejores diseños de sitios

Publicado: 2023-02-12

Las unidades de CSS son uno de los aspectos más fundamentales a considerar al crear un diseño de sitio. Estas unidades definirán cómo su diseño interactuará en varios dispositivos.

Pero cuando se trata de unidades CSS, hay muchas opciones para elegir y no todas las opciones son iguales. Las unidades CSS no se limitan solo a las fuentes, por lo que, como desarrollador front-end, también debe comprender cómo estas unidades afectan los diseños.

En este artículo, le mostraremos cómo funcionan las diferentes unidades de CSS, para que pueda usarlas para crear mejores diseños y diseños de sitios.

Tipos de unidades CSS

Las unidades CSS se pueden separar en las siguientes categorías:

  • Unidades absolutas
  • Unidades relativas de fuente
  • Unidades relativas de ventana gráfica

Unidades absolutas

Algunas unidades dependen de ciertos valores absolutos y no se ven afectadas por ningún tamaño de pantalla o fuente. Estas unidades de visualización pueden variar según las diferentes resoluciones de pantalla, ya que dependen de los DPI (puntos por pulgada) de las pantallas.

Estas unidades son:

  • px (píxeles)
  • en pulgadas)
  • cm (centímetro)
  • mm (milímetro)
  • pc
  • pt (puntos)

Píxeles

Los píxeles son la unidad más utilizada y aceptada. Y se considera la base de medida de muchas otras unidades. Proporciona el resultado más consistente entre varios dispositivos.

El elemento box en el siguiente ejemplo tiene una altura de 150 px y un ancho de 150 px, y seguirá siendo el mismo en todos los tamaños de pantalla.

[css]
.caja{
altura: 150px;
ancho: 150px;
}
[/css]

Todas las demás unidades absolutas como en (pulgadas), cm (centímetro) y mm (milímetro) son unidades de medida del mundo real con muy pocos casos de uso de CSS del mundo real.

Sin embargo, aún es bueno entender su relación con los píxeles, así es como se comparan:

  • 1 pulgada = 96 px
  • 1 cm = 37,8 píxeles
  • 1 mm = 3,78 píxeles

Mientras que pc (picas) y pt (puntos) están directamente relacionados con las pulgadas.

  • 1 pulgada = 72 puntos
  • 1 pulgada = 6 piezas
Comparación de unidades CSS

La relación entre todas las unidades absolutas se puede demostrar así:

Movimiento rápido del ojo

Aparte de los píxeles, todas las demás unidades absolutas tienen muy pocos o ningún caso de uso para CSS de pantalla, pero dado que son unidades de medida del mundo real, se pueden usar de manera efectiva en CSS de impresión. (En caso de que se esté preguntando acerca de los píxeles, ¡también funcionan bien en CSS de impresión!)

Unidades relativas de fuente

Hay algunas unidades que dependen del tamaño de la fuente o de la familia de fuentes del documento o de sus elementos de nivel principal. Esto incluye unidades como:

  • ellos
  • movimiento rápido del ojo
  • ex
  • ch

em

Em es una unidad de longitud relativa; depende del tamaño de fuente del elemento principal o del documento. Por defecto, 1em es igual a 16px si no se define font-size .

Em hereda el tamaño del tamaño de fuente de su padre inmediato. Entonces, si un elemento principal tiene font-size:18px , entonces 1em se medirá como 18px para todos sus elementos secundarios.

Aquí tenemos un div .post con tres hijos, .post-item , con un título y algo de texto.

[html]
<clase div=”publicación”>
<div class=”artículo posterior”>
<h2>Título</h2>
Lorem Ipsum es simplemente un texto ficticio de la industria de la impresión y la composición tipográfica. Lorem Ipsum ha sido el texto ficticio estándar de la industria desde el siglo XVI.
</div>
<div class=”artículo posterior”>
<h2>Título</h2>
Lorem Ipsum es simplemente un texto ficticio de la industria de la impresión y la composición tipográfica. Lorem Ipsum ha sido el texto ficticio estándar de la industria desde el siglo XVI.
</div>
<div class=”artículo posterior”>
<h2>Título</h2>
Lorem Ipsum es simplemente un texto ficticio de la industria de la impresión y la composición tipográfica. Lorem Ipsum ha sido el texto ficticio estándar de la industria desde el siglo XVI.
</div>
</div>
[/html]

Ahora el .post principal tiene un font-size:20px font-size:1.2em padding:0.75em .post div margin:0.75em elemento secundario . *1,2em*0,75em).

[css]
html{
tamaño de fuente: 20px;
}

.correo{
tamaño de fuente: 20px;
}

.post div{
tamaño de fuente: 1,2 em;
}

.post-elemento{
fondo: rosa;
relleno: 0,75 em;
margen: 0,75 em;
}

.post-artículo h2{
tamaño de fuente: 1,5 em;
margen: 0.5em 0;
}

.post-elemento p{
margen:0;
tamaño de fuente: 1em;
}
[/css]

3 unidades css idénticas con un título grande y un texto de relleno de Lorem Ipsum más pequeño

Como puede ver, los elementos secundarios heredan valores del elemento principal.

La ventaja de usar em es que, si decide cambiar el font-size , padding y margin de cada elemento proporcionalmente, solo tiene que cambiar el tamaño de fuente del elemento principal y todos los demás elementos se ajustarán en consecuencia.

Ese no será el caso con unidades absolutas como px, donde tienes que ajustar cada elemento individualmente.

Sin embargo, esta naturaleza de herencia puede ser un poco difícil de administrar si los elementos anidados también tienen su propio font-size en em.

Al igual que en la demostración anterior, si envuelve el título y el párrafo dentro de otro div en uno de los elementos secundarios, verá resultados extraños.

[html]
<div class=”artículo posterior”>
<div>
<h2>Título</h2>
Lorem Ipsum es simplemente un texto ficticio de la industria de la impresión y la composición tipográfica. Lorem Ipsum ha sido el texto ficticio estándar de la industria desde el siglo XVI.
</div>
</div>
[/html]

3 unidades css con un título grande y un texto de relleno de Lorem Ipsum más pequeño, el Lorem Ipsum en la unidad central es ligeramente más grande que en las unidades superior e inferior

Debido a que post-item tiene un div anidado, el tamaño base cambiará de 24 px a 28,8 px (20 px * 1,2 em * 1,2 em), y font-size y margin para h2 cambiarán a 43,2 px (20 px * 1,2 em * 1,2 em) *1,5em) y 14,4px (20px*1,2em*1,2em*0,5em), respectivamente.

Movimiento rápido del ojo

Rem puede ser realmente útil en este tipo de situaciones porque siempre se refieren al tamaño de fuente del elemento raíz, no al elemento principal.

Si toma el ejemplo anterior y cambia las unidades de em a rem para .post div , verá que todos los elementos secundarios se corrigen solos.

[css]
.post div{
tamaño de fuente: 1,2 rem;
}
[/css]

Una vez que la unidad se cambia de em a rem, su base cambia de div principal a elemento raíz, que tiene un front-size:20px .

3 unidades css idénticas con un título grande y un texto de relleno de Lorem Ipsum más pequeño

Por lo tanto, el cálculo será 20px*1.2rem*value y h2 y p tendrán font-size y margin consistentes, independientemente de su padre.

Ex

Ex es relativo a la altura x de la fuente actual y se usa muy raramente. La medida de la altura x no es consistente; a veces proviene de la propia fuente y, a veces, el navegador lo calcula solo.

Al igual que em y rem, depende de la fuente, pero la principal diferencia es que ex cambiará cuando cambie también la font-family , lo que no es el caso con los otros dos.

[css]
.caja{
ancho: 150 ex;
altura: 150ex;
}
[/css]

Ch

Ch es similar a ex pero no depende de la altura de x; más bien en el ancho del carácter cero (0). También cambia con font-family .

[css]
.caja{
ancho: 150 canales;
altura: 150ch;
}
[/css]

Unidades relativas de ventana gráfica

Hay algunas unidades que dependen del tamaño de la altura y el ancho de la ventana gráfica, como:

  • vh (altura de la ventana gráfica)
  • vw (ancho de la ventana gráfica)
  • vmin (mínimo de ventana gráfica)
  • vmax (máximo de ventana gráfica)

Vh

Vh (altura de la ventana gráfica) se mide como 1vh igual al 1% de la altura de la ventana gráfica. Esta unidad es muy útil para crear elementos de altura completa. Vh reacciona de manera similar al porcentaje, pero no depende de la altura del elemento principal.

Puede usar vh en cualquier lugar, pero el caso de uso más común de vh es para hacer elementos de altura completa. En este ejemplo, la clase full-height creará un contenedor azul que tendrá el 100 % de la altura de la ventana gráfica.

[css]
.altura completa{
altura: 100vh;
fondo: azul;
}
[/css]

volkswagen

Vw (ancho de la ventana gráfica) es similar a vh pero considera el ancho, en lugar de la altura de la ventana gráfica. 1vw es igual al 1% del ancho de la ventana gráfica. Estas unidades pueden ser realmente útiles si desea crear una ventana gráfica receptiva basada en tipografía.

En este ejemplo, font-siz de h1 es el 6 % del ancho de la ventana gráfica, por lo que si el ancho de la ventana gráfica es de 1000 píxeles, el tamaño de la fuente será de 60 píxeles, y si la ventana gráfica es de 500 píxeles, el tamaño de la fuente será de 30 píxeles.

[css]
h1{
tamaño de fuente: 6vw;
}
[/css]

Vmin

Vmin se calcula sobre la base del valor mínimo del ancho o alto de la ventana gráfica, el que sea menor. Digamos que tiene un tamaño de ventana gráfica de 1000 px de alto por 800 px de ancho. 1vmin será igual a 8px.

Vmax

Vmax se calcula exactamente al contrario de vmin , donde se considera el valor máximo de la ventana gráfica.

Al igual que el ejemplo anterior de ventana gráfica con 1000 px de alto por 800 px de ancho, 1vmax será igual a 10 px.

Ahora exploremos cómo puede usar vmin y vmax de manera efectiva. Usando nuestro ejemplo anterior, digamos que queremos tener un relleno y un margen fluidos basados ​​en el tamaño de la ventana gráfica ahora, en lugar de un valor fijo.

En este fragmento de código, configuré el relleno en 3vmax y el margen en 1.5vmin .

[css]
.post-elemento{
fondo rosa;
acolchado: 3v máx.;
margen: 1.5vmin;
}
[/css]

6 unidades CSS, las tres del lado izquierdo son más largas y más cortas en altura, las tres de la derecha son más altas en altura pero más cortas en longitud

El relleno y el margen cambiarán según el tamaño de la ventana gráfica.

Unidad de porcentaje (%)

La unidad de porcentaje (%) no pertenece a ninguna categoría en particular mencionada anteriormente, pero se puede categorizar como una unidad relativa. Es relativo a su elemento padre.

El porcentaje se asocia principalmente con la altura y el ancho de un elemento, pero se puede usar en cualquier lugar donde se permitan unidades de longitud CSS.

El porcentaje es una de las unidades más útiles para crear un diseño receptivo o fluido. Los marcos populares como Bootstrap, Foundation y Bulma usan el porcentaje para su diseño base.

Aquí, la clase full-width tendrá el 100% del ancho de su elemento principal.

[css]
.ancho completo{
ancho: 100%;
}
[/css]

Conclusión

Hemos cubierto casi todas las unidades de CSS disponibles para su uso. Dependiendo de sus objetivos, algunos serán más adecuados que otros. Como desarrollador front-end, siempre es bueno conocer sus opciones porque nunca sabe cuál podría necesitar en su próximo proyecto.

Entonces, ¿qué unidades usa con más frecuencia para obtener el resultado deseado? ¡Háganos saber en la sección de comentarios!