Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

Propriété CSS row-rule-break

Disponibilité limitée

Cette fonctionnalité n'est pas Compatible car elle ne fonctionne pas dans certains des navigateurs les plus utilisés.

Vous voulez une meilleure prise en charge pour cette fonctionnalité ? Dites-nous pourquoi.

Expérimental: Il s'agit d'une technologie expérimentale.
Vérifiez attentivement le tableau de compatibilité des navigateurs avant de l'utiliser en production.

La propriété CSS row-rule-break définit le comportement de rupture des règles de ligne en segments lorsque les règles de ligne intersectent les espaces entre les colonnes.

Exemple interactif

row-rule-break: none;
row-rule-break: normal;
row-rule-break: intersection;
<section id="default-example">
  <div id="example-element">
    <i>A</i>
    <i>B</i>
    <i>C</i>
    <i>D</i>
    <i>E</i>
    <i>F</i>
    <i>G</i>
    <i>H</i>
    <i>I</i>
    <i>J</i>
    <i>K</i>
    <i>L</i>
    <i>M</i>
    <i>N</i>
    <i>O</i>
    <i>P</i>
    <i>Q</i>
    <i>R</i>
    <i>S</i>
    <i>T</i>
    <i>U</i>
    <i>V</i>
    <i>W</i>
    <i>X</i>
    <i>Y</i>
    <i>Z</i>
  </div>
</section>
#example-element {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  row-rule: solid thick orange;
  column-rule: solid thick lavender;
  gap: 15px;
}
#example-element i {
  padding: 5px;
}

Syntaxe

css
/* Valeurs avec un mot-clé */
row-rule-break: none;
row-rule-break: normal;
row-rule-break: intersection;

/* Valeurs globales */
row-rule-break: inherit;
row-rule-break: initial;
row-rule-break: revert;
row-rule-break: revert-layer;
row-rule-break: unset;

Valeurs

Cette propriété est définie comme un mot-clé unique parmi la liste suivante :

none

Il n'y a pas de rupture dans les règles de ligne lorsqu'elles intersectent les espaces entre les colonnes ; au contraire, une règle de ligne continue est peinte sur toute la largeur du conteneur, d'un bord à l'autre.

normal

Dans les conteneurs de type grille et flexibles, se comporte comme none. Dans les mises en page multi-colonnes, se comporte comme none. Il s'agit de la valeur par défaut.

intersection

Les règles de ligne se rompent toujours lorsqu'elles intersectent les espaces entre les colonnes, les segments de règle de ligne commençant et se terminant aux bords du conteneur et des espaces.

Description

La propriété row-rule-break définit si les règles de ligne doivent ou non être rompues en segments lorsqu'elles intersectent les espaces entre les colonnes.

Les règles de ligne sont peintes dans un espace de ligne sous forme d'un ou plusieurs segments, les segments se produisant entre les éléments de grille adjacents dans des lignes séparées, entre les éléments flexibles ou les lignes flexibles, en fonction de la flex-direction dans les mises en page flexibles, ou dans les espaces entre les lignes adjacentes de colonnes dans les mises en page multi-colonnes lorsque column-height crée plusieurs lignes de colonnes.

La propriété row-rule-break ne détermine que si la rupture se produit. Par défaut, la rupture, ou l'espace, entre les segments de règle de ligne est la largeur de l'espace entre les colonnes, chaque segment commençant et se terminant au bord de l'espace (ou au bord du conteneur). Si l'espace est 0, cette rupture peut ne pas être visible. Les positions finales peuvent être contrôlées avec les propriétés row-rule-inset.

Si row-rule-break est défini sur none, il n'y a pas de rupture, la ligne de règle de ligne est continue, et toutes les valeurs de row-rule-inset n'affectent que la règle de ligne sur le bord gauche et droit du conteneur. Lorsqu'il y a des ruptures, les propriétés row-rule-inset affectent le début et la fin de chaque segment de règle de ligne.

La propriété row-rule-break, ainsi que la propriété column-rule-break, peut être définie en utilisant la propriété raccourcie rule-break.

Le fait qu'une règle de ligne soit par défaut composée d'un seul segment continu ou de segments qui se rompent lorsqu'ils intersectent les espaces entre les colonnes dépend du type de conteneur.

Conteneurs de grille

Dans les conteneurs de grille, par défaut, les segments de règle de ligne continuent à travers les intersections « croisées » visibles. La définition de row-rule-break: intersection force les segments à se rompre à chaque espace entre les colonnes, là où ils se croisent autrement.

Par défaut, il n'y a pas de rupture de règle de ligne. Cochez la case pour définir row-rule-break sur intersection, ce qui fait que les règles continues se rompent à chaque intersection « croisée ». Par défaut, la rupture entre les segments correspond à la largeur de l'espacement de colonne column-gap.

Conteneurs flexibles

Dans les boîtes flexibles, lorsque la flex-direction est row ou row-reverse dans les modes d'écriture horizontaux, la règle de ligne est continue, les segments de colonne commençant et se terminant au bord des espaces de ligne. Lorsque la flex-direction est column ou column-reverse, la règle de colonne est continue, les segments de ligne commençant et se terminant au bord des espaces de colonne.

Dans les modes d'écriture horizontaux, lorsque la valeur est row ou row-reverse, la règle de ligne est continue par défaut, tandis qu'avec column ou column-reverse, la règle de ligne se casse à chaque espace de colonne. La définition de row-rule-break sur intersection n'affecte que les règles de ligne dans les scénarios row et row-reverse.

Conteneurs multi-colonnes

Dans les conteneurs multi-colonnes, le comportement par défaut normal se comporte de la même manière que none.

Si vous sélectionnez intersection, la règle de ligne se divise en segments chaque fois qu'elle atteint un espace entre les colonnes, chaque segment commençant et se terminant au bord de l'espace. Les positions de début et de fin peuvent être modifiées avec les propriétés row-rule-inset.

Définition formelle

Valeur introuvable dans la base de données

Syntaxe formelle

row-rule-break = 
none |
normal |
intersection

Exemples

Utilisation simple

Dans cet exemple, nous utilisons la propriété row-rule-break pour diviser chaque segment de règle dans un conteneur de grille afin que des segments de règle de ligne soient créés entre les espaces des colonnes. La modification de la propriété column-gap change la taille des segments.

HTML

Nous créons une liste de 50 éléments et un curseur pour modifier la largeur de l'espace entre les colonnes. La plupart du HTML est masqué pour plus de concision.

html
<ul>
  <li>1</li>
  <li>2</li>
  …
  <li>49</li>
  <li>50</li>
</ul>

CSS

Nous définissons la liste non ordonnée comme un conteneur à 8 colonnes, créant des colonnes et des lignes avec la propriété grid-template-columns et en définissant list-style-type sur none pour supprimer les puces. Nous incluons un gap de 20px pour fournir suffisamment d'espace entre les colonnes et les lignes pour accueillir nos règles de colonne et de ligne solides de 20px. Enfin, nous définissons les règles de ligne pour qu'elles se divisent en segments à chaque intersection.

css
ul {
  display: grid;
  grid-template-columns: repeat(8, 1fr);
  list-style-type: none;
  gap: 20px;

  row-rule: 10px solid olive;
  column-rule: 10px solid palegoldenrod;

  row-rule-break: intersection;
}

Le reste du CSS est masqué pour plus de concision.

Résultat

Agrandissez les espaces entre les colonnes et notez comment les ruptures entre les segments de ligne s'agrandissent. Réduisez la largeur de l'espace entre les colonnes à 0px et remarquez comment la décoration des lignes semble continue. Ce n'est pas le cas ! L'espace de 0px entre les segments peut ne pas être visible, mais les segments commencent et se terminent toujours à l'espace, donc tous les décalages définis avec les propriétés row-rule-inset sont toujours appliqués.

Spécifications

Spécification
CSS Gaps Module Level 1
# propdef-row-rule-break

Compatibilité des navigateurs

Voir aussi