Propiedad CSS break-after: guía completa, usos y soporte

Actualización definitiva: 11/15/2025
  • break-after controla saltos tras un elemento en páginas, columnas y regiones, con valores para forzar, evitar o ajustar el contexto.
  • La prioridad es break-before sobre break-after y sobre break-inside; existen valores forzados y de evitar que condicionen el corte.
  • salto de página después actúa como alias en impresión; Conviene usarlo como respaldo junto a break-after en proyectos con soporte variado.

Ilustración de saltos de página y columnas con CSS break-after

Cuando maquetas para impresión, multicolumnas o flujos fragmentados, tarde o temprano te preguntas cómo forzar o evitar que algo salte a la siguiente página o columna. Ahí es donde entra en juego la propiedad CSS break-after, una herramienta que indica al navegador si debe producirse un salto justo después de un elemento.

Más allá de los casos típicos de impresión, break-after es útil en diseños complejos: periódicos digitales con columnas, informes en PDF, documentos con páginas pares e impares y hasta flujos por regiones. Su potencia radica en que puede forzar, permitir o impedir saltos. según el contexto: páginas impresas, columnas o regiones.

Qué es la propiedad CSS break-after

La propiedad break-after define si debe producirse un salto de página, columna o región inmediatamente después del elemento al que se aplica. Dicho de forma llana, marca un punto de corte justo tras el componente, de modo que el contenido posterior comience en la siguiente “unidad” de fragmentación (página, columna o región) según el entorno en el que esté maquetando el navegador.

Históricamente, en CSS 2.1 disponíamos de page-break-after para medios paginados. Hoy, break-after amplía ese concepto para funcionar también con multicolumnas y regiones, además de mantener la compatibilidad con los valores clásicos usados ​​en impresión.

Sintaxis, valores y cómo interpretarlos

La forma básica de uso es directa: break-after: <valor>. Estos valores cubren contextos genéricos y específicos de páginas, columnas o regiones:

break-after: auto | avoid | always | all |
             avoid-page | page | left | right | recto | verso |
             avoid-column | column |
             avoid-region | region

Valores genéricos (válidos en cualquier contexto): auto (ni fuerza ni prohíbe un salto), avoid (intenta evitarlo), always (fuerza un salto en el contexto de fragmentación inmediata) y all (experimental, fuerza el salto atravesando todos los contextos de fragmentación: por ejemplo, columna y página a la vez si aplica).

Valores para medios paginados: avoid-page (evitado de página), page (fuerza salto de página), left y right (fuerzan uno o dos saltos para asegurar que el siguiente contenido comienza en página izquierda o derecha, respectivamente). Además, recto y verso son valores experimentales que obligan a que la siguiente página sea recto o verso según el flujo del idioma.

Valores para diseño multicolumna: avoid-column evita un salto de columna y column lo fuerza. En contenidos extensos repartidos por varias columnas, estos valores son clave para no cortar piezas delicadas (como un fragmento de código) o para bloques alineales a la cabecera de la siguiente columna.

Valores para: avoid-region y region controlan el salto entre áreas definidas por CSS Regions. Aunque esta especificación tuvo tracción en su momento, el soporte real de regiones es limitado en navegadores modernos, por lo que conviene considerar su uso como experimental o de legado.

Ejemplo visual de break-after en columnas y páginas

Reglas de decisión del navegador: forzar, evitar y prioridades

En cada punto donde podría producirse una rotura (el “borde” entre elementos), el navegador evalúa tres propiedades: el break-after del elemento anterior, el break-before del siguiente y el break-inside del contenedor. Es la interacción de las tres la que determina el resultado.

El algoritmo, simplificado, funciona así: si alguna de esas propiedades especifica un valor forzado (always, left, right, page, column, region), ese valor tiene prioridad. Si hay varios forzados, gana el que está más “adelante” en el flujo: break-before > break-after > break-inside.

Si en ese punto aparece algún valor de evitar (avoid, avoid-page, avoid-column, avoid-region), no se aplicará el salto correspondiente. Después de resolver los saltos forzados, el navegador puede agregar “saltos suaves” si lo necesita. pero nunca en límites marcados con valores de evitar.

Relación con salto de página después y compatibilidad histórica

Por motivos de compatibilidad, los navegadores tratan page-break-after como un alias de break-after en medios paginados. Esto asegura que sitios antiguos que usaban la propiedad clásica sigan comportándose como se esperaba.

La equivalencia de valores funciona de la siguiente manera: autoauto, alwayspage, avoidavoid-page, leftleft, rightrightEn la práctica, puedes escribir ambos para mayor robustez en impresión:

.elemento {
  page-break-after: always; /* fallback histórico */
  break-after: page;        /* estándar actual */
}

También existe page-break-before con la misma filosofía en el “lado anterior” del elemento. Usar antes o después depende del punto exacto donde quieras el corte en tu formulación.

Ámbito de aplicación y comportamiento visual

La propiedad se aplica a cajas de nivel de bloque en flujo normal y, por extensiones modernas, a ítems de grid, artículos de flex, grupos de filas de tablas y filas de tabla. No se hereda, su valor inicial es auto y su tipo de animación es discreto (es decir, no interpola como tal en transiciones).

Cuando una página o columna corta una caja, los márgenes, bordes y padding no se dibujan en el punto de corte. La única excepción es el margen inmediatamente posterior a un salto forzado, que se conserva. Este detalle ayuda a mantener el espacio visual correcto tras un salto insertado expresamente.

Ejemplos prácticos de uso

Impresión (TOC que siempre termina la página): si quieres que después del índice de contenidos comience una página nueva, puedes usar la siguiente regla dentro de un @media print. Es una situación típica en libros o informes donde interesa separar claramente secciones clave:

@media print {
  #tabla-de-contenidos {
    break-after: always;
  }
}

Impresión con página derecha: en publicaciones a doble cara, puede ser necesario que el siguiente capítulo comience en una página derecha. Para ello, utiliza el valor right:

@media print {
  #tabla-de-contenidos {
    break-after: right;
  }
}

Multicolumnas: imagina un contenedor con título principal que ocupa todas las columnas (column-span: all) y subsecciones que quieres alinear en cabecera de columna. Aplicación break-after: column en el bloque anterior (por ejemplo, en un <p> o en cada <section>) para forzar el salto de columna:

main {
  column-width: 200px;
}
h1 {
  column-span: all;
}
section {
  break-after: column; /* cada sección empieza arriba de la siguiente columna */
}

Evitar saltos tras filas de tabla: si quieres mantener una tabla en la misma página cuando sea posible, añade break-after: avoid en las filas. En documentos impresos esto reduce cortes raros en el cuerpo de una tabla:

tr {
  break-after: avoid;
}

Evitar cortes dentro de un fragmento delicado en columnas: un bloque de código al que no quieres partir entre columnas puede beneficiarse de break-after: column en el elemento anterior o manejarlo con break-inside: avoid-column dentro del propio bloque, según el caso:

.articulo {
  column-width: 12em; /* activa multicolumnas */
}
.articulo .code-snippet {
  break-after: column; /* tras el snippet, siguiente columna */
}

Regiones: si trabajas con flujos por regiones (soporte limitado), puedes indicar que una lista termina una región y que el resto fluya en la siguiente. Aunque no es lo más común hoy, sirve como referencia de cómo se pensó la propiedad en ese contexto:

.region ul {
  break-after: region;
}

Adaptación condicional: si deseas que en pantallas pequeñas el comportamiento vuelva a auto para evitar fragmentación agresiva, Puedes apoyarte en consultas de medios.:

@media screen and (max-width: 768px) {
  h2 {
    break-after: auto;
  }
}

Cómo se combinan break-before, break-after y break-inside

Estas tres propiedades actúan a la vez. Es habitual, por ejemplo, usar break-inside: avoid en un componente para que no se rompe por dentro, mientras que una cabecera siguiente declara break-before: page para arrancar en una página nueva. Si el “antes” pide un salto, tendrá preferencia sobre el “después” anterior.

La prioridad ya comentada es importante: break-before gana a break-after, que a su vez gana a break-inside. Si varios piden romper, se aplica el elemento que aparece más tarde en el flujo de documento.

Compatibilidad y soporte por contexto

El soporte de break-after depende del contexto. En paginación/impresión, los navegadores modernos lo implementan de forma amplia, y el alias page-break-after mantiene la retrocompatibilidad de sitios antiguos.

En multicolumnas, el valor column está disponible en motores modernos; sin embargo, en navegadores basados ​​en WebKit ha coexistido el prefijo -webkit-column-break-after como alternativa no estándar. Si apuntas a un público amplio, conviene probar y, si procede, incluir el prefijo de respaldo. para.

Para regiones, el panorama es muy irregular: CSS Regions no está implantado de forma general, por lo que los valores region y avoid-region Deben considerarse experimentales o de legado.

Un apunte histórico: hubo demostraciones en las que IE10+ mostró saltos de columna con break-after mientras que navegadores WebKit pedían el prefijo -webkit-column-break-after, y Firefox se quedó atrás en ese contexto. Hoy el soporte ha mejorado, pero sigue siendo una buena idea contrastar los tres entornos (impresión, columnas y regiones) en los navegadores objetivo.

Buenas prácticas de maquetación con break-after.

  • Úsalo con moderación: un “siempre salta” tras cada bloque genera espacios en blanco y maquetaciones poco fluidas. Empléalo solo donde aporte claridad.
  • Evitar con criterio: abusar de avoid puede provocar cortes incómodos en otras partes del documento. Combínalo con break-inside Cuando quieras proteger un componente.
  • Pruebas en navegadores y dispositivos: Imprime un PDF, usa la vista previa de impresión y testea multicolumnas. El comportamiento puede variar según el motor y el contexto.
  • Media queries con cabeza: hay decisiones de fragmentación que tienen sentido en papel pero no en móvil; ajusta con @media cuando sea necesario.

Detalles técnicos y de especificación

Recapitulando el modelo de la propiedad: valor inicial auto, no heredada, valor computado “tal cual” se especifica y tipo de animación discreto. Aunque su uso típico no implica animaciones, este detalle aclara que no existe transición gradual entre estados de corte.

En cajas divididas por un salto, los bordes, rellenos y márgenes no se “repiten” en el punto de rotura. Se conserva el margen inmediatamente después de un salto forzado., lo cual es útil para mantener la separación del contenido que arranca en la nueva página o columna.

Patrones habituales y trucos (con contexto histórico)

En épocas con soporte irregular, se popularizó un truco: insertar un DIV vacío con &nbsp; y asignarle page-break-before/after para forzar el salto antes o después del componente real. A día de hoy, no es la solución “bonita”, pero puede rescatar maquetaciones de legado donde page-break-* funciona mejor que break-* en ciertos navegadores antiguos.

El truco solía escribirse así (para provocar un salto antes de una tabla): primero el DIV con salto, luego un párrafo separador y la tabla, de modo que la tabla apareciera al principio de una página nueva al imprimir:

<div style="page-break-before: always;">&nbsp;</div>
<p></p>
<table>
  <tr><td>Contenido...</td></tr>
</table>

Si trabajas con multicolumnas en WebKit clásico, recuerda que el viejo -webkit-column-break-after aún puede servir como salvavidas junto al valor estándar, por ejemplo:

figure {
  break-after: column;
  -webkit-column-break-after: always; /* respaldo no estándar */
}

Casos de uso avanzados

Paginación a doble cara: en libros y revistas, es común exigir que capítulos arranquen siempre en páginas derechasPara ello, usa right. Si el contenido siguiente ya caía en una derecha, no habrá salto extra; Si no, el navegador insertará uno adicional para cuadrarlo.

Diseños híbridos (páginas con columnas dentro): si estás en una sección multicolumna situada en una página impresa, el valor all puede romper tanto la columna como la página, garantizando que el siguiente bloque comience limpio en el contexto superior. Es un valor experimental, así que pruébalo con mimo.

Reflujo ordenado de secciones: cuando tienes varias secciones que deben comenzar en cabecera de columna, Aplicar break-after: column a cada sección ayuda a que queden “cuadradas” visualmente, con títulos aproximados arriba y sin fragmentos partidos en posiciones incómodas.

Pequeño recordatorio de alias y valores equivalentes

Si todavía mantienes hojas de estilo de impresión con page-break-after, puedes alinearlas con el mundo moderno así: page-break-after: always equivalente a break-after: page; page-break-after: avoid se mapea a break-after: avoid-page; left y right conservan su significado. Esto te permite actualizar de forma progresiva.

Para casos donde el navegador no implementa completamente la familia break-* en un contexto concreto, mantener el alias clásico como “fallback” Suele ser un movimiento inteligente, sobre todo en proyectos con usuarios que imprimen con navegadores muy variados.

Errores comunes y cómo evitarlos

Poner break-after: always en provoca páginas o columnas semi vacías. Antes de forzar, valora si avoid o auto ya ofrecen un corte natural aceptable.

Ignorar la interacción con break-inside es otro fallo habitual. Si un componente no debe dividirse, añade break-inside: avoid (o avoid-page/avoid-column) Además de manejar el “después” o “antes” en los elementos adyacentes.

No probar en contexto real es el tercer clásico: la vista previa de impresión no siempre es fiel a cómo quedará el PDF o la impresora física. Genera un PDF, revisa los márgenes y asegúrate de que los saltos respetan cabeceras y pies.

Ficha rápida de la propiedad

  • Inicial: auto
  • Se aplica a: cajas de bloque, elementos de grid, elementos de flex, grupos de filas de tabla y filas
  • Heredada: no
  • Valor computado: tal cual se especifica
  • Tipo de animación: discreta

Por último, recuerda que algunos valores (all, recto, verso) siguen marcados como experimentales en los borradores de especificación. Aunque existen implementaciones parciales, tu estrategia debe incluir pruebas y “fallbacks” cuando dependas de ellos.

Maestría break-after te permite maquetar documentos que se imprimen bien, columnas ordenadas y flujos de lectura claros. A poco que lo combina con break-before y break-inside y tengas en cuenta los alias históricos y los prefijos de respaldo, obtendrás cortes precisos y previsibles sin pelearte con páginas en blanco ni bloques partidos donde no toca.

propiedad css overflow-y
Artículo relacionado:
Propiedad CSS overflow-y: guía completa, valores y trucos
Artículos Relacionados: