Herramientas CSS

Gratis Generador de dimensionamiento CSS stretch

Genere CSS usando la palabra clave stretch para dimensionamiento fill-available en layouts block, flex, grid y absolutamente posicionados.

Cargando herramienta...

Qué es Generador de dimensionamiento CSS stretch?

La palabra clave CSS stretch (Chrome 138+) es el valor estándar para el tamaño fill-available, reemplazando las palabras clave con prefijo -webkit-fill-available y -moz-available. Cuando establece width: stretch, el elemento se dimensiona para llenar el espacio disponible usando margin-box sizing, lo que significa que el margin-box del elemento encaja dentro del bloque contenedor. Esto difiere de width: 100% que usa content-box sizing y a menudo se desborda cuando hay padding, borde o margen. stretch funciona en contextos de layout block, flex, grid y posicionamiento absoluto.

Respuesta rápida

Use width: stretch o height: stretch para el tamaño fill-available estándar. A diferencia de width: 100%, stretch usa margin-box sizing, por lo que el padding y el borde no causan desbordamiento. Reemplaza -webkit-fill-available y -moz-available con una única palabra clave estandarizada. Chrome 138+, Firefox 130+, Safari 18.2+.

Last updated: 2026-05-30

Limitaciones

  • stretch aún no es compatible con todos los navegadores. Chrome 138+, Firefox 130+ y Safari 18.2+ lo soportan. Mantenga alternativas con prefijo de proveedor (-webkit-fill-available, -moz-available) y un respaldo width: 100% para navegadores antiguos.
  • stretch solo funciona en elementos con visualización block, flex, grid o posicionamiento absoluto. Los elementos inline, celdas de tabla y elementos reemplazados (img, video, iframe sin tamaño explícito) no soportan stretch.
  • En contextos flex y grid, stretch puede interactuar inesperadamente con propiedades de alineación. Un flex item con align-self: stretch y width: stretch puede producir instrucciones de tamaño conflictivas: la palabra clave stretch en la propiedad de tamaño tiene prioridad sobre la alineación stretch.

Sources:MDN Web Docs · W3C Specifications · jquery.app on GitHub

Cómo usar esta herramienta

  1. Seleccione su contexto de layout: el comportamiento de stretch difiere ligeramente entre elementos block, flex, grid y posicionados absolutamente.
  2. Elija el eje que desea estirar (width, height, o ambos mediante inset: 0 para posicionamiento absoluto).
  3. Revise la nota específica del layout que explica cómo stretch interactúa con los márgenes, el padding y el bloque contenedor en su contexto elegido.
  4. Copie el CSS generado y reemplace cualquier patrón existente de width: 100% o declaraciones fill-available con prefijo de proveedor.

Para qué puedes usarla

  • Reemplazar width: 100% en un input o select que se desborda de su padre debido al padding y borde: stretch usa margin-box sizing, por lo que la caja total encaja dentro del contenedor.
  • Estandarizar el tamaño fill-available entre navegadores reemplazando -webkit-fill-available y -moz-available con la palabra clave estándar stretch.
  • Hacer que un elemento con posicionamiento absoluto se estire hasta los bordes de su ancestro posicionado sin valores explícitos de top/right/bottom/left.

Casos de uso

Ejemplos prácticos

Ejemplo

Input de ancho completo sin desbordamiento

Un formulario de búsqueda tiene un input con padding: 8px 12px y border: 2px. Usar width: 100% hace que el input se desborde de su contenedor 28px a cada lado. Cambiar a width: stretch hace que el margin-box encaje dentro del contenedor, manteniendo el input alineado con los límites del formulario.

Ejemplo

Migrar desde fill-available con prefijo de proveedor

Una hoja de estilos heredada usa width: -webkit-fill-available con una alternativa -moz-available. Reemplace ambas con width: stretch: la palabra clave estándar funciona igual y es compatible con Chrome 138+, Firefox 130+ y Safari 18.2+. Las declaraciones de respaldo pueden permanecer para versiones de navegadores antiguos.

Errores comunes

  • Esperar que stretch se comporte idénticamente a width: 100% en layout block: 100% usa content-box sizing e ignora el padding/borde del elemento, mientras que stretch usa margin-box sizing. En la mayoría de los casos, stretch es el comportamiento deseado para inputs y elementos de formulario.
  • Usar stretch en un flex item cuando el flex container tiene align-items: stretch: la palabra clave stretch en el item anula la alineación stretch del contenedor, lo que puede producir un tamaño inesperado.
  • Asumir que stretch funciona en contextos de layout inline: stretch solo se aplica a elementos con tipo de visualización block, flex, grid o posicionamiento absoluto. Los elementos inline ignoran stretch y recurren al ancho intrínseco.

Verificación

  1. Inspeccione el elemento en DevTools y verifique que el ancho o alto calculado coincida con el tamaño fill-available esperado: el elemento no debería desbordar su contenedor incluso con padding y borde aplicados.
  2. Cambie el tamaño del viewport o contenedor y confirme que el elemento se estira para llenar el espacio disponible en todos los tamaños. Compare lado a lado con una referencia width: 100% para ver la diferencia en viewports estrechos.

FAQ

Preguntas sobre Generador de dimensionamiento CSS stretch

¿En qué se diferencia stretch de width: 100% en términos de padding y borde?

width: 100% es relativo al ancho del content-box del bloque contenedor, y luego se añaden padding y borde: el elemento se desborda de su contenedor. stretch dimensiona el margin-box para llenar el espacio disponible, por lo que el padding y el borde se restan del total, manteniendo el elemento dentro de su contenedor. Esto hace que stretch se comporte como la mayoría de los desarrolladores esperan que funcione width: 100%, especialmente para elementos de formulario.

¿Funciona stretch en modos de escritura distintos de horizontal-tb?

Sí. stretch respeta el modo de escritura del elemento. En modos de escritura vertical (vertical-rl, vertical-lr), width: stretch se estira a lo largo del eje inline (vertical) y height: stretch se estira a lo largo del eje block (horizontal), coincidiendo con la dirección de escritura. Esto hace que stretch sea más consciente del modo de escritura que los tamaños fijos en píxeles o porcentajes.

¿Cuál es la diferencia entre stretch y la palabra clave fill-available más reciente?

fill-available y stretch son el mismo valor con diferentes nombres. La especificación CSS propuso originalmente fill-available, luego lo renombró a stretch antes de la implementación. stretch es el nombre canónico. Ambos se resuelven al mismo cálculo de tamaño intrínseco en navegadores compatibles, pero solo stretch tiene garantía de compatibilidad futura.

Herramientas relacionadas

Más herramientas css

Prueba también

Prueba también