Propiedad CSS block-overflow
La propiedad CSS block-overflow marca dónde se trunca el texto multilínea con puntos suspensivos o una cadena personalizada. Valores, ejemplos y compatibilidad.
La propiedad block-overflow controla qué ocurre en el punto donde un contenedor de bloque es truncado en la dirección de bloque (verticalmente, en modos de escritura horizontal). En lugar de simplemente cortar el texto, permite marcar el punto de truncamiento con puntos suspensivos (…) o una cadena personalizada, indicando al lector que hay más contenido a continuación.
Forma parte del CSS Overflow Module Level 4 y es la contraparte multilínea de text-overflow: mientras que text-overflow: ellipsis trunca una sola línea en la dirección inline, block-overflow controla el marcador que se muestra cuando el contenido se trunca en varias líneas (por ejemplo, mediante max-lines o line-clamp).
La compatibilidad con navegadores es prácticamente inexistente. A partir de 2026, ningún navegador principal incluye block-overflow. Para truncar líneas en producción, utiliza line-clamp (o el ampliamente compatible -webkit-line-clamp). Esta página documenta el comportamiento especificado para que comprendas la propiedad cuando llegue a los navegadores.
block-overflow solo tiene efecto en un punto de truncamiento forzado — por ejemplo, la última línea visible permitida por max-lines, o el cuadro de línea inmediatamente antes de un salto de región. Por sí sola, no limita cuántas líneas se muestran; combínala con max-lines para eso.
| Initial Value | clip |
|---|---|
| Applies to | Block containers. |
| Inherited | No. |
| Animatable | No. |
| Version | CSS Overflow Module Level 4 |
| DOM Syntax | object.style.blockOverflow = "ellipsis"; |
Sintaxis
block-overflow: clip | ellipsis | <string>;El valor es una palabra clave simple (clip o ellipsis) o una <string> entre comillas.
Truncar múltiples líneas
block-overflow está diseñado para funcionar junto con max-lines, que limita el número de líneas, y la propiedad continue, que marca el cuadro como truncable. El ejemplo siguiente limita la descripción de una tarjeta a tres líneas y muestra puntos suspensivos en la tercera:
.card-description {
max-lines: 3; /* keep only the first three lines */
continue: discard; /* truncate the rest */
block-overflow: ellipsis; /* show … at the truncation point */
}<p class="card-description">
This description is long enough to wrap onto many lines. Only the
first three are kept, and the third ends with an ellipsis so the
reader knows the text continues beyond what is shown here.
</p>Como ningún navegador admite aún este conjunto de propiedades, el equivalente práctico que funciona en producción es line-clamp:
.card-description {
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
display: -webkit-box;
overflow: hidden;
}Relación con line-clamp
La propiedad line-clamp es una abreviatura que establece max-lines, block-overflow y continue a la vez. Escribir line-clamp: 3 implica block-overflow: ellipsis y limita el bloque a tres líneas, por lo que raramente se establece block-overflow directamente — se deja que line-clamp lo configure automáticamente.
Valores
| Valor | Descripción |
|---|---|
| clip | El contenido se recorta en el borde del cuadro. |
| ellipsis | Muestra puntos suspensivos (...) al final de la última línea. Se representa como un carácter Unicode (U+2026), aunque puede cambiarse por un equivalente basado en el idioma del contenido y el modo de escritura del agente de usuario utilizado. |
<string> | Muestra la cadena especificada como marcador de desbordamiento de bloque al final de la última línea. El navegador puede truncar la cadena si es extremadamente larga. |
Una cadena personalizada reemplaza los puntos suspensivos predeterminados. Esto es útil para marcadores de truncamiento localizados o de marca como "… leer más":
.custom-ellipsis {
block-overflow: "… read more";
}block-overflow vs. text-overflow
Estas dos propiedades resuelven problemas relacionados en ejes diferentes y es fácil confundirlas:
| Propiedad | Dirección | Uso típico |
|---|---|---|
text-overflow | Inline (una línea) | Truncar una sola línea de texto con white-space: nowrap; overflow: hidden; |
block-overflow | Bloque (varias líneas) | Marcar el punto de truncamiento cuando varias líneas son recortadas |
Si necesitas un título de una línea que termine en puntos suspensivos, usa text-overflow. Si necesitas un extracto multilínea que termine en puntos suspensivos, usa line-clamp hoy (y block-overflow cuando los navegadores lo admitan).