Publicado em: 11 de outubro de 2024
No Chrome 130, a propriedade CSS
box-decoration-break
com um valor de clone
está disponível,
com suporte para fragmentação inline e de bloco. Esta postagem explica por que e como usá-lo.
Fragmentação inline
A fragmentação inline acontece quando um elemento inline, por exemplo, uma
string de texto, é dividido em várias linhas. Os elementos inline têm uma caixa, que geralmente não é necessário considerar, a menos que você tente adicionar um plano de fundo ou uma borda ao elemento. No exemplo a seguir, um plano de fundo com um border-radius é adicionado a um intervalo. A borda só faz uma curva no início e no fim da string.
span {
background-color: #002856;
color: #fff;
border-radius: 0.5em;
border: 2px solid black;
}

O valor inicial de box-decoration-break é slice, o que dá esse efeito
de corte nas caixas. No entanto, o box-decoration-break: clone recém-compatível significa que cada linha começa e termina com a borda arredondada.
span {
background-color: #002856;
color: #fff;
border-radius: 0.5em;
border: 2px solid black;
box-decoration-break: clone;
}

Fragmentação de blocos
A fragmentação de blocos acontece quando você divide o conteúdo em colunas com layout de várias colunas ou quando você imprime e o conteúdo é dividido em páginas.
No exemplo a seguir, o conteúdo é dividido em colunas, e cada parágrafo
tem uma borda. Com o valor inicial de slice, as caixas são cortadas na parte de baixo e de cima das colunas.
.columns {
column-count: 5;
}
.columns p {
border: 5px solid #34c9eb;
padding: 0.5em;
}

Com box-decoration-break: clone, quando uma caixa é fragmentada, cada fragmento é
encapsulado com a borda.
.columns {
column-count: 5;
}
.columns p {
border: 5px solid #34c9eb;
padding: 0.5em;
box-decoration-break: clone;
}

O mesmo acontece se você tiver bordas em caixas que são fragmentadas ao imprimir a página. Se uma caixa for dividida em duas páginas, a borda da caixa será concluída na primeira página e abrirá uma nova caixa na segunda página.