Un convertidor de unidades CSS es una herramienta que traduce valores de longitud entre los distintos sistemas de medida de CSS. CSS define más de una docena de unidades de longitud, divididas en dos grupos: unidades absolutas como px, pt, cm e in, que se corresponden con medidas físicas fijas, y unidades relativas como rem, em, vw, vh y %, que dependen del contexto: el tamaño de fuente o las dimensiones del viewport.
Los navegadores convierten todas las longitudes CSS a píxeles durante el renderizado. Cuando escribes 1.5rem, el navegador multiplica 1.5 por el font-size raíz (normalmente 16px) para obtener 24px. Cuando escribes 50vw, toma la mitad del ancho actual del viewport. Entender estas relaciones es necesario para construir maquetaciones que escalen entre dispositivos y respeten las preferencias del usuario, como el tamaño de fuente personalizado configurado en el navegador.
La especificación CSS Values and Units Module Level 4 (W3C) define las ratios de conversión exactas entre todas las unidades absolutas: 1in = 96px = 72pt = 2.54cm = 25.4mm. Las unidades relativas no tienen una ratio fija porque dependen del contexto en tiempo de ejecución. Un convertidor de unidades CSS gratuito te permite calcular estas relaciones al instante dado tu font-size raíz específico y las dimensiones del viewport, sin escribir ningún código.
¿Por qué usar un convertidor de unidades CSS?
Convertir unidades CSS a mano implica recordar ratios, abrir una calculadora y comprobar los resultados. Esta herramienta realiza la conversión en tu navegador sin ninguna fricción.
⚡
Conversión instantánea
Introduce un valor, elige la unidad de origen y obtén los resultados en las 10 unidades CSS a la vez. Sin necesidad de hacer cálculos separados para px a rem, px a vw o px a pt.
🔒
Tus datos, privados
Todas las conversiones se ejecutan localmente en tu navegador. Ningún valor se envía a un servidor, ni se registra, ni se almacena. Cierra la pestaña y los datos desaparecen.
🎯
Ajustado a tu contexto exacto
Configura tu font-size raíz, el ancho del viewport, el alto del viewport y el font-size del elemento padre. El convertidor usa estos valores para producir resultados precisos para las unidades rem, em, vw, vh y %.
📏
Cubre todas las unidades de longitud CSS
Soporta px, rem, em, vw, vh, %, pt, cm, mm e in. Tanto si trabajas con maquetaciones de pantalla, hojas de estilo de impresión o tipografía responsiva, todas las unidades están cubiertas.
Casos de uso del convertidor de unidades CSS
Desarrollo frontend
Convierte los valores en píxeles de un archivo de diseño a rem para una librería de componentes. Cuando un mockup de Figma especifica 24px de espaciado, conviértelo a 1.5rem para que la maquetación escale con la preferencia de font-size del usuario.
Desarrollo backend / full-stack
Genera plantillas PDF o de email donde las dimensiones se especifican en pt o cm. Convierte tus valores CSS en píxeles a tamaños en puntos listos para impresión en renderizado del lado del servidor con herramientas como Puppeteer o wkhtmltopdf.
DevOps / Pipelines de CI
Valida que los tokens de espaciado de un sistema de diseño usen unidades consistentes entre pasos de compilación. Verifica rápidamente que una base de 16px produce los valores rem esperados en el CSS generado.
QA / Testing visual
Verifica estilos computados durante pruebas entre navegadores. Cuando Chrome DevTools muestra un valor computado de 14.4px, conviértelo a rem para confirmar que coincide con el 0.9rem esperado de la hoja de estilos.
Visualización de datos
Dimensiona elementos SVG o canvas relativos a las dimensiones del viewport. Convierte anchos fijos de gráficos en píxeles a unidades vw para que las visualizaciones ocupen un porcentaje consistente de la pantalla en distintos monitores.
Aprender CSS
Entiende la relación entre rem, em y px experimentando con distintos tamaños base. Cambia el font-size raíz de 16px a 18px y observa cómo cambia cada valor rem.
Referencia de unidades de longitud CSS
CSS define 10 unidades de longitud de uso habitual. Las unidades absolutas tienen una conversión fija a píxeles. Las unidades relativas dependen del contexto: el font-size raíz para rem, el font-size del elemento padre para em, y el viewport del navegador para vw y vh.
Unidad
Nombre
Tamaño por defecto
Relativo a
px
Pixel
1px
Fixed; 1px = 1/96 of 1in on screens
rem
Root em
16px (default)
Relative to <html> font-size
em
Em
Inherited
Relative to parent element font-size
vw
Viewport width
1% of viewport
Relative to browser window width
vh
Viewport height
1% of viewport
Relative to browser window height
%
Percentage
Varies
Relative to parent property value
pt
Point
1.333px
Print unit; 1pt = 1/72 of 1in
cm
Centimeter
37.795px
Physical unit; 1cm = 96px / 2.54
mm
Millimeter
3.7795px
Physical unit; 1mm = 1cm / 10
in
Inch
96px
Physical unit; 1in = 96px (CSS spec)
Unidades CSS absolutas vs. relativas
Elegir entre unidades absolutas y relativas afecta a cómo responde tu maquetación ante distintas pantallas y configuraciones del usuario. Cada grupo tiene sus propias ventajas e inconvenientes.
Unidades absolutas (px, pt, cm, mm, in)
Las unidades absolutas producen el mismo tamaño físico independientemente del contexto. Usa px para bordes, sombras y elementos que no deben escalar. Usa pt para hojas de estilo de impresión. La especificación CSS define 1in = 96px, aunque el tamaño físico real varía según el DPI de la pantalla.
Unidades relativas (rem, em, vw, vh, %)
Las unidades relativas escalan con su contexto de referencia. Usa rem para font-sizes y espaciados para respetar las preferencias del usuario. Usa em para el escalado interno de componentes (padding relativo al font-size del propio elemento). Usa vw/vh para maquetaciones que ocupen el viewport, como secciones hero.
Tabla de conversión de px a rem
Esta tabla asume un font-size raíz de 16px (el valor por defecto del navegador). Si tu proyecto usa una base diferente, divide el valor en píxeles por tu base para obtener el equivalente en rem.
px
rem
pt
Uso típico
10
0.625
7.5
Small caption text
12
0.75
9
Body text (compact)
14
0.875
10.5
Default body text
16
1
12
Root font-size (browser default)
18
1.125
13.5
Large body text
20
1.25
15
H4 heading
24
1.5
18
H3 heading
32
2
24
H2 heading
48
3
36
H1 heading
64
4
48
Display / hero text
Ejemplos de código
Estos ejemplos muestran cómo convertir unidades CSS de forma programática en JavaScript, Python, propiedades personalizadas CSS y Sass.
JavaScript
// px to rem (given root font-size of 16px)
const pxToRem = (px, base = 16) => px / base
pxToRem(24) // → 1.5
// rem to px
const remToPx = (rem, base = 16) => rem * base
remToPx(1.5) // → 24
// px to vw (given viewport width of 1440px)
const pxToVw = (px, viewport = 1440) => (px / viewport) * 100
pxToVw(360) // → 25
// Dynamic calculation using getComputedStyle
const rootFontSize = parseFloat(
getComputedStyle(document.documentElement).fontSize
) // → 16 on most browsers
¿Cuál es el font-size raíz por defecto en los navegadores?
Todos los navegadores principales (Chrome, Firefox, Safari, Edge) tienen un font-size raíz por defecto de 16px. Esto significa que 1rem = 16px a menos que el usuario o una hoja de estilos sobreescriba el font-size del elemento html. Algunos usuarios lo aumentan en la configuración del navegador por accesibilidad, razón por la que rem es la mejor opción por defecto para texto en lugar de px.
¿Cómo convierto px a rem?
Divide el valor en píxeles por el font-size raíz. Con la base por defecto de 16px: 24px / 16 = 1.5rem. Si tu proyecto establece html { font-size: 10px } (un reset habitual), entonces 24px / 10 = 2.4rem. La fórmula siempre es: rem = px / font-size-raíz.
¿Cuál es la diferencia entre rem y em?
rem es relativo al font-size del elemento raíz (la etiqueta html), mientras que em es relativo al font-size del elemento padre del elemento actual. Esto significa que rem produce un tamaño consistente en toda la página, mientras que em se acumula cuando hay anidamiento. Un 2em dentro de un padre con 2em equivale a 4 veces el tamaño raíz. Usa rem para espaciado global y font-sizes; usa em cuando quieras que el tamaño escale relativo al texto del propio componente.
¿Cuándo debo usar las unidades vw o vh?
Usa vw para elementos que deban escalar con el ancho de la ventana del navegador, como secciones hero a pantalla completa o tipografía fluida (clamp con vw). Usa vh para secciones a pantalla completa o maquetaciones de altura del viewport. Ten cuidado con vh en navegadores móviles donde la barra de direcciones cambia la altura del viewport; la nueva unidad dvh (dynamic viewport height) resuelve este problema.
¿Puedo mezclar distintas unidades CSS en la misma propiedad?
Sí. La función calc() de CSS te permite combinar cualquier unidad en una sola expresión. Por ejemplo, width: calc(100vw - 2rem) resta 32px (con la base por defecto) del ancho total del viewport. También puedes mezclar unidades en clamp(): font-size: clamp(1rem, 2vw + 0.5rem, 2.5rem) crea tipografía fluida que escala entre 16px y 40px.
¿Cuántos píxeles equivale 1pt en CSS?
En CSS, 1pt = 1/72 de pulgada, y 1 pulgada = 96px, por lo que 1pt = 96/72 = 1.333px. Esta ratio está fijada en la especificación CSS independientemente del DPI de la pantalla. Los puntos se usan principalmente en hojas de estilo de impresión y generación de PDF. Para diseño de pantalla, px o rem son mejores opciones.
¿Sigue siendo una buena práctica el reset de font-size al 62.5%?
Establecer html { font-size: 62.5% } hace que 1rem = 10px, lo que simplifica el cálculo mental (24px = 2.4rem). Sin embargo, requiere que establezcas explícitamente el font-size en el elemento body y puede causar problemas con componentes de terceros que asumen la base por defecto de 16px. La preferencia moderna es mantener el valor por defecto de 16px y usar una función de Sass o un plugin de PostCSS para gestionar la conversión.