La propriété box-decoration-break dans Chrome 130

Publié le 11 octobre 2024

Dans Chrome 130, la propriété CSS box-decoration-break avec la valeur clone est disponible, avec la prise en charge de la fragmentation en ligne et par blocs. Cet article explique pourquoi et comment l'utiliser.

Fragmentation intégrée

La fragmentation en ligne se produit lorsqu'un élément en ligne, par exemple une chaîne de texte, est réparti sur plusieurs lignes. Les éléments en ligne ont une boîte, à laquelle vous n'avez généralement pas besoin de penser, sauf si vous essayez d'ajouter un arrière-plan ou une bordure à l'élément. Dans l'exemple suivant, un arrière-plan avec un border-radius est ajouté à une étendue. La bordure n'est incurvée qu'au début et à la fin de la chaîne.

span {
  background-color: #002856;
  color: #fff;
  border-radius: 0.5em;
  border: 2px solid black;
}

Ligne de texte à la ligne, avec un arrière-plan coupé à l'endroit où le texte passe à la ligne.

La valeur initiale de box-decoration-break est slice, ce qui donne cet effet de tranche sur les boîtes. Cependant, la nouvelle prise en charge de box-decoration-break: clone signifie que chaque ligne commence et se termine par une bordure arrondie.

span {
  background-color: #002856;
  color: #fff;
  border-radius: 0.5em;
  border: 2px solid black;
  box-decoration-break: clone;
}

Ligne de texte à la ligne avec un arrière-plan aux angles arrondis.

Fragmentation des blocs

La fragmentation de blocs se produit si vous divisez le contenu en colonnes avec une mise en page à plusieurs colonnes, ou lorsque vous imprimez et que le contenu est divisé en pages.

Dans l'exemple suivant, le contenu est divisé en colonnes et chaque paragraphe comporte une bordure. Avec la valeur initiale de slice, les boîtes sont découpées en haut et en bas des colonnes.

.columns {
  column-count: 5;
}

.columns p {
  border: 5px solid #34c9eb;
  padding: 0.5em;
}

Plusieurs colonnes avec des boîtes découpées.

Avec box-decoration-break: clone, lorsqu'une boîte est fragmentée, chaque fragment est entouré d'une bordure.

.columns {
  column-count: 5;
}

.columns p {
  border: 5px solid #34c9eb;
  padding: 0.5em;
  box-decoration-break: clone;
}

Plusieurs colonnes avec des zones clonées.

Il en va de même si les bordures des boîtes sont fragmentées lors de l'impression de la page. Si une boîte est répartie sur deux pages, la bordure de la boîte se termine sur la première page, puis une nouvelle boîte s'ouvre sur la deuxième page.