Logo Dinamizak

DINAMIZAK

/ blog / unidades en css
Inicio Política Economía Blog Liberalismo

Unidades en CSS: PX, EM, REM, VH y VW

Unidad relativa y unidad absoluta

La diferencia entre usar Pixeles (PX) y REM, EM, VW, VH es que los pixeles son unidades absolutas, es decir nunca cambiarán aunque la pantalla cambie, las demás unidades si lo hacen ya que son relativas.

Unidad absoluta

Unidad relativa



REM

La unidad rem puede variar dependiendo de la cantidad de pixeles que le asignes, de forma predetrminada equivale a:
HTML = 16px
1rem = 16px

Aquí podemos ver un ejemplo gráfico:

CSS
html { font-size: 16px; }
.texto { font-size: 2rem; }
/** 16 * 2 = 32px **/

font-size: 32px


Para cambiar esta expresión:
1rem = 16px y pasarla a 1rem = 32px

Debemos hacerlo de la siguiente manera:

CSS
html { font-size: 32px; }
.texto { font-size: 2rem; }
/** 32 * 2 = 64px **/

font-size: 64px


Para poder hacer un texto responsivo con unidades REM y que se adapte dependiendo del tamaño de la pantalla, simplemente cambiamos la fuente raiz (HTML) en cada tamaño que elijamos para adaptar el texto:

CSS
// Ordenador @media (max-width: 1400px) { html { font-size: 16px; } }
// Tablet @media (max-width: 768px) { html { font-size: 14px; } }
// Móvil @media (max-width: 450px) { html { font-size: 12px; } }



EM

EM es lo mismo que REM, con la diferencia de que multiplica los anteriores EM previos del CSS.

CSS
html { font-size: 16px; }
.texto { font-size: 2em; }
/** 16 * 2 = 32px **/

font-size: 32px


En este caso vamos a añadir más elementos EM a un mismo CSS para que se multiplique su resultado:

CSS
html { font-size: 16px; }
.texto { font-size: 3em; padding: 3em; }
/** font-size => 3em * 16px = 48px padding => 3em * 3em * 16px = 144px **/

font-size: 32px
padding: 144px




VW

La unidad VW es equivalente a usar porcentajes, VW se usa para el ancho de la pantalla:
1vw = 1%

Por tanto poner 50vw sería equivalente a ocupar el 50% del ancho un div.

CSS
.caja { width: 50vw; }


VH

Las unidades VH son los mismo que las VW, pero usa para el alto de la pantalla y actua también como un porcentaje:
1vh = 1%

Por tanto poner 50vh sería equivalente a ocupar el 50% de la altura de un div.

CSS
.caja { height: 50vh; }

En esta página:

CSS Responsive

8min