0Apoyar

Playground de CSS Multicolumn

Distribuye contenido editorial en columnas: combina anchura y cantidad, ajusta la separación y las reglas y controla spans y cortes antes de copiar el código.

Guía

Preguntar a la IA

Playground de CSS Multicolumn

Respuesta generada con openai/gpt-5.4-nano. La IA puede cometer errores. Revisa siempre el resultado.
Preview

Diseño editorial con CSS

Una guía práctica de CSS Multicolumn

Distribuye contenido continuo en columnas sin cambiar el orden del documento ni convertir cada fragmento en un componente independiente.

El flujo sigue siendo natural

El navegador llena una columna y continúa en la siguiente. El texto, los encabezados y las listas conservan el mismo orden que tienen en el HTML.

Este comportamiento funciona especialmente bien en artículos, glosarios y bloques de lectura continua.

Anchura o cantidad

column-width propone una anchura óptima y permite que el navegador calcule cuántas columnas caben. column-count fija la cantidad máxima visible.

El shorthand columns puede combinar ambos valores para conservar una medida legible sin superar el número elegido.

El espacio también comunica

column-gap separa los fragmentos y column-rule dibuja una guía visual en el centro de ese espacio sin ocupar anchura adicional.

Una separación generosa suele ayudar más que una regla demasiado intensa.

Encabezados que cruzan columnas

Con column-span: all un encabezado puede interrumpir el flujo, ocupar todo el contenedor y comenzar una nueva línea de columnas debajo.

Es una herramienta útil para dividir un texto largo en bloques editoriales reconocibles.

Evita cortes incómodos

break-inside: avoid intenta mantener cada sección unida. Si no queda espacio suficiente, el bloque completo puede pasar a la columna siguiente.

Conviene usarlo con moderación porque los bloques altos pueden dejar huecos visibles.

Cuándo elegir Multicolumn

Multicolumn está pensado para un único flujo de contenido. Grid y Flexbox son mejores cuando cada pieza necesita su propia colocación.

Prueba distintos anchos de preview para comprobar cuándo aparece o desaparece una columna sin redimensionar toda la ventana.

HTML
<article class="multicol">
  <header>
    <p>Diseño editorial con CSS</p>
    <h2>Una guía práctica de CSS Multicolumn</h2>
    <p>Distribuye contenido continuo en columnas sin cambiar el orden del documento ni convertir cada fragmento en un componente independiente.</p>
  </header>

  <section>
    <h3>El flujo sigue siendo natural</h3>
    <p>El navegador llena una columna y continúa en la siguiente. El texto, los encabezados y las listas conservan el mismo orden que tienen en el HTML.</p>
    <p>Este comportamiento funciona especialmente bien en artículos, glosarios y bloques de lectura continua.</p>
  </section>

  <section>
    <h3>Anchura o cantidad</h3>
    <p>column-width propone una anchura óptima y permite que el navegador calcule cuántas columnas caben. column-count fija la cantidad máxima visible.</p>
    <p>El shorthand columns puede combinar ambos valores para conservar una medida legible sin superar el número elegido.</p>
  </section>

  <section>
    <h3>El espacio también comunica</h3>
    <p>column-gap separa los fragmentos y column-rule dibuja una guía visual en el centro de ese espacio sin ocupar anchura adicional.</p>
    <p>Una separación generosa suele ayudar más que una regla demasiado intensa.</p>
  </section>

  <section>
    <h3>Encabezados que cruzan columnas</h3>
    <p>Con column-span: all un encabezado puede interrumpir el flujo, ocupar todo el contenedor y comenzar una nueva línea de columnas debajo.</p>
    <p>Es una herramienta útil para dividir un texto largo en bloques editoriales reconocibles.</p>
  </section>

  <section>
    <h3>Evita cortes incómodos</h3>
    <p>break-inside: avoid intenta mantener cada sección unida. Si no queda espacio suficiente, el bloque completo puede pasar a la columna siguiente.</p>
    <p>Conviene usarlo con moderación porque los bloques altos pueden dejar huecos visibles.</p>
  </section>

  <section>
    <h3>Cuándo elegir Multicolumn</h3>
    <p>Multicolumn está pensado para un único flujo de contenido. Grid y Flexbox son mejores cuando cada pieza necesita su propia colocación.</p>
    <p>Prueba distintos anchos de preview para comprobar cuándo aparece o desaparece una columna sin redimensionar toda la ventana.</p>
  </section>
</article>
Tailwind CSS
Algunas clases con valores arbitrarios pueden sustituirse por clases nativas, según el valor y la configuración de Tailwind CSS.
<article class="columns-[14rem] gap-[24px] [column-rule:none]">
  <header class="[column-span:all]">
    <p>Diseño editorial con CSS</p>
    <h2>Una guía práctica de CSS Multicolumn</h2>
    <p>Distribuye contenido continuo en columnas sin cambiar el orden del documento ni convertir cada fragmento en un componente independiente.</p>
  </header>

  <section>
    <h3>El flujo sigue siendo natural</h3>
    <p>El navegador llena una columna y continúa en la siguiente. El texto, los encabezados y las listas conservan el mismo orden que tienen en el HTML.</p>
    <p>Este comportamiento funciona especialmente bien en artículos, glosarios y bloques de lectura continua.</p>
  </section>

  <section>
    <h3>Anchura o cantidad</h3>
    <p>column-width propone una anchura óptima y permite que el navegador calcule cuántas columnas caben. column-count fija la cantidad máxima visible.</p>
    <p>El shorthand columns puede combinar ambos valores para conservar una medida legible sin superar el número elegido.</p>
  </section>

  <section>
    <h3>El espacio también comunica</h3>
    <p>column-gap separa los fragmentos y column-rule dibuja una guía visual en el centro de ese espacio sin ocupar anchura adicional.</p>
    <p>Una separación generosa suele ayudar más que una regla demasiado intensa.</p>
  </section>

  <section>
    <h3>Encabezados que cruzan columnas</h3>
    <p>Con column-span: all un encabezado puede interrumpir el flujo, ocupar todo el contenedor y comenzar una nueva línea de columnas debajo.</p>
    <p>Es una herramienta útil para dividir un texto largo en bloques editoriales reconocibles.</p>
  </section>

  <section>
    <h3>Evita cortes incómodos</h3>
    <p>break-inside: avoid intenta mantener cada sección unida. Si no queda espacio suficiente, el bloque completo puede pasar a la columna siguiente.</p>
    <p>Conviene usarlo con moderación porque los bloques altos pueden dejar huecos visibles.</p>
  </section>

  <section>
    <h3>Cuándo elegir Multicolumn</h3>
    <p>Multicolumn está pensado para un único flujo de contenido. Grid y Flexbox son mejores cuando cada pieza necesita su propia colocación.</p>
    <p>Prueba distintos anchos de preview para comprobar cuándo aparece o desaparece una columna sin redimensionar toda la ventana.</p>
  </section>
</article>
CSS
.multicol {
  columns: 14rem;
  column-gap: 24px;
  column-rule: none;
}

.multicol header {
  column-span: all;
}

Guía visual de CSS

Entiende CSS Multicolumn

Aprende cómo un único flujo de contenido se fragmenta en columnas. Consulta la sintaxis y prueba cada propiedad en una preview independiente.

Volver al playground

El modelo mental de Multicolumn

Multicolumn no crea una colección de ítems. El navegador fragmenta el contenido continuo en cajas de columna anónimas y conserva el orden del documento.

Un flujo que continúa entre columnasEl contenido llena una columna en el eje de bloque y continúa en la siguiente. Las columnas son fragmentos del mismo elemento, no hijos independientes.

La anchura es una medida óptima

column-width propone una medida legible y el navegador calcula cuántas columnas caben. column-count puede fijar la cantidad o limitar su máximo.

Spans y cortes reorganizan el flujo

column-span: all atraviesa la fila de columnas. Las propiedades break-* indican dónde conviene conservar o interrumpir cada bloque.

Propiedades del contenedor multicolumna

Estas propiedades crean las columnas, relacionan su anchura y cantidad y controlan el espacio y la regla visual entre ellas.

columns

Combina column-width y column-count en una sola declaración.

Sintaxis
columns: <'column-width'> || <'column-count'>;
Valor inicial de CSS
auto auto
Valores
column-widthcolumn-countwidth + count

Un valor de longitud define la anchura óptima; un entero define la cantidad. Si aparecen ambos, la cantidad actúa como máximo.

Consultar documentaciónAbre en una pestaña nueva

column-width

Propone la anchura ideal de cada caja de columna.

Sintaxis
column-width: auto | <length>;
Valor inicial de CSS
auto
Valores
auto10rem16ch

No es una anchura exacta. El navegador puede ensanchar las columnas para aprovechar el espacio o estrecharlas si el contenedor es menor.

Consultar documentaciónAbre en una pestaña nueva

column-count

Define la cantidad deseada de columnas para el contenido.

Sintaxis
column-count: auto | <integer>;
Valor inicial de CSS
auto
Valores
auto234

Con column-width: auto fija la cantidad. Junto a una anchura no auto limita el número máximo que puede crearse.

Consultar documentaciónAbre en una pestaña nueva

column-gap

Reserva espacio entre las cajas de columna.

Sintaxis
column-gap: normal | <length-percentage>;
Valor inicial de CSS
normal
Valores
normal01em2rem

En Multicolumn, el valor inicial normal usa 1em. La regla se pinta centrada dentro de este espacio y no añade anchura propia.

Consultar documentaciónAbre en una pestaña nueva

column-rule

Dibuja una regla visual entre columnas sin separar más el contenido.

Sintaxis
column-rule: <'column-rule-width'> || <'column-rule-style'> || <'column-rule-color'>;
Valor inicial de CSS
medium none currentcolor
Valores
none1px solid currentcolor3px double #8b5cf6

Combina anchura, estilo y color como border. El estilo inicial none hace que la regla no se pinte aunque la anchura inicial sea medium.

Consultar documentaciónAbre en una pestaña nueva

Propiedades del contenido fragmentado

Los descendientes pueden atravesar todas las columnas o solicitar que su caja se mantenga unida durante la fragmentación.

break-inside: avoid;
Evitar un corte es una preferencia, no una garantía

break-inside: avoid pide conservar el bloque, pero el navegador puede fragmentarlo si no cabe completo o si existen restricciones incompatibles.

column-span

Permite que un elemento atraviese todas las columnas.

Sintaxis
column-span: none | all;
Valor inicial de CSS
none
Valores
noneall

all crea una interrupción en el flujo, equilibra el contenido anterior y comienza una nueva fila de columnas después del elemento.

Consultar documentaciónAbre en una pestaña nueva

break-inside

Indica si conviene evitar la fragmentación dentro de un bloque.

Sintaxis
break-inside: auto | avoid | avoid-column;
Valor inicial de CSS
auto
Valores
autoavoidavoid-column

avoid se aplica a todos los contextos de fragmentación; avoid-column se refiere específicamente a los cortes entre columnas.

Consultar documentaciónAbre en una pestaña nueva

Errores habituales al usar Multicolumn

Los resultados inesperados suelen venir de tratar la anchura como exacta, imponer una altura, introducir contenido que no puede encoger o confiar demasiado en las preferencias de corte.

column-width no produce una medida exacta

Resultado esperado
Que cada columna mida exactamente el valor declarado.
Causa
La propiedad define una anchura óptima y el algoritmo reparte el espacio disponible entre las columnas que caben.
Solución
Trata el valor como una medida de lectura objetivo y prueba varios anchos del contenedor en lugar de depender de un píxel exacto.

Una altura fija crea columnas de desbordamiento

Resultado esperado
Que todo el contenido permanezca dentro del ancho visible del contenedor.
Causa
Al limitar la altura, el flujo puede necesitar más columnas y continuar fuera del espacio inline disponible.
Solución
Evita alturas rígidas para lectura continua o proporciona un scrollport deliberado y comprueba el comportamiento responsive.

El contenido ancho invade la columna vecina

Resultado esperado
Que cualquier imagen, URL o bloque de código se adapte automáticamente a su columna.
Causa
El contenido con un tamaño mínimo grande puede desbordar su caja de columna y pintarse sobre el gap o la columna siguiente.
Solución
Haz que los medios usen max-inline-size: 100% y define una estrategia de ajuste o overflow para texto y código largos.

break-inside: avoid deja huecos visibles

Resultado esperado
Mantener cada bloque unido sin alterar el equilibrio de las columnas.
Causa
Mover un bloque completo a la columna siguiente puede dejar sin usar el espacio que quedaba en la anterior.
Solución
Reserva avoid para unidades que realmente deban permanecer juntas y comprueba el resultado con contenido y alturas reales.

Multicolumn frente a otros modelos de layout

Multicolumn fragmenta un flujo continuo; Grid y Flexbox relacionan hijos independientes. La estructura del contenido indica qué modelo expresa mejor el diseño.