Qué es la función round() en CSS: redondeo dinámico

Desde mayo de 2024, podemos utilizar la función round() para redondear valores en CSS. Esta función se une a otras funciones matemáticas como calc() o min(), permitiendo cálculos más precisos sin hacks de JavaScript.

Sintaxis

width: round(120px, var(--rounding-interval));

Cómo funciona la función round() en CSS

La función round() permite redondear un número al múltiplo más cercano de un valor específico. Se compone de 3 parámetros:

Ejemplos de uso de la función round() en CSS

--customProp: 123;

/* Redondea al múltiplo más cercano de 50px */
width: round(var(--customProp), 50px); /* ==> 150px */

/* Redondea hacia abajo al múltiplo de 50px más cercano */
width: round(down, var(--customProp), 50px); /* ==> 100px */

/* Redondea hacia arriba */
width: round(up, var(--customProp), 50px); /* ==> 150px */

/* Redondea acercándose a cero */
width: round(to-zero, var(--customProp), 50px); /* ==> 100px */

Estrategias de redondeo explicadas

En esta tabla puedes ver los resultados de ejecutar round(strategy, 123, 50px) con diferentes estrategias de redondeo:

EstrategiaDescripciónEjemplo
nearest (por defecto)Redondea al múltiplo más cercano150px
upSiempre redondea hacia arriba150px
downSiempre redondea hacia abajo100px
to-zeroRedondea acercándose a cero100px

to-zero es interesante porque, a diferencia de down, también afecta a valores negativos.

Ejemplo:

width: round(to-zero, -123px, 50px); /* ==> -100px */

Compatibilidad

La función round() es parte del estándar CSS Values and Units Level 4 y es compatible con la mayoría de los navegadores modernos desde mayo de 2024.

¿Por qué usar round() en CSS?

Cuándo round() es realmente útil en CSS

Si usas round() con un número fijo (por ejemplo, round(123px, 50px)), entonces podrías simplemente escribir 150px directamente en tu CSS. La verdadera utilidad de round() está en los valores dinámicos, como:

  1. Variables CSS
--dynamic-width: 127px;
width: round(var(--dynamic-width), 50px); /* Se adapta dinámicamente */
  1. Resultados de calc()
width: round(calc(100% / 3), 10px); /* Redondea el resultado de una división */
  1. Ajuste dinámico con clamp()
width: round(clamp(120px, 50vw, 300px), 25px);
  1. Diseños responsive (evitando píxeles fraccionados)
font-size: round(1.3rem, 0.25rem);
  1. Redondeo en valores negativos con to-zero
width: round(to-zero, -137px, 50px); /* ==> -100px */

✍️ TL;DR:


🚀 Ahora que ya conoces round(), ¿cómo lo aplicarías en tu CSS? Deja tu comentario abajo 👇.

Un par de cosas que puedes hacer antes de irte para ayudarme:

A ti no te cuesta nada y a mí me ayuda un montón 😊.

Jorge Baumann aka Baumannzone
Escrito por J. Baumann

Jorge Baumann es JavaScript senior software engineer, creador de contenido y speaker. Vive en Madrid, le encanta el testing, dibujar con CSS y tiene un perro que se llama Rambo.

Conoce más sobre J. Baumann