Cómo elegir la mejor unidad de CSS para crear mejores diseños de sitios
Publicado: 2023-02-12Las 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
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]
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]
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
.
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]
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!