Propriété CSS rule-width
Disponibilité limitée
Cette fonctionnalité n'est pas Compatible car elle ne fonctionne pas dans certains des navigateurs les plus utilisés.
Want more browser support for this feature? Tell us why.
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 rule-width définit les largeurs de toutes les lignes tracées dans les gouttières des grilles multi-lignes, des conteneurs flexibles et des mises en page multi-colonnes, en définissant les largeurs des règles de colonne et de ligne à la même valeur.
Exemple interactif
rule-width: thin;
rule-width: thin, thick;
rule-width: 1px, 10px;
rule-width: repeat(2, thin, thick), 10px;
rule-width: thick, repeat(auto, 1px, 2px), thick;
<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);
rule: solid magenta;
}
#example-element i {
padding: 5px;
}
Propriétés constitutives
Cette propriété est une propriété raccourcie pour les propriétés CSS suivantes :
Syntaxe
/* Keyword values */
rule-width: thin;
rule-width: medium;
rule-width: thick;
rule-width: thin, medium, thick;
rule-width: thick, repeat(5, thin), thick;
rule-width: thick, repeat(auto, thin, medium), thick;
/* Length values */
rule-width: 1px;
rule-width: 5px;
rule-width: 1px, 3px, 5px;
rule-width: 5px, repeat(auto, 1px), 10px, 15px;
rule-width: 5px, repeat(5, 1px, 3px), 5px;
/* Global values */
rule-width: inherit;
rule-width: initial;
rule-width: revert;
rule-width: revert-layer;
rule-width: unset;
Valeurs
La propriété rule-width accepte une liste de valeurs séparées par des virgules, y compris :
<line-width>-
Une largeur de ligne (
<line-width>) : Cela peut être l'un des mots-clésthin,mediumouthick, ou une valeur positive de type<length>, représentant la largeur de la ligne. La valeur par défaut estmedium. <repeat-line-width>-
Une fonction
repeat(), avec le premier argument étant un entier (<integer>) de1ou plus, et une ou plusieurs valeurs<line-width>comme arguments suivants. L'entier définit le nombre de fois que les valeurs<line-width>doivent être répétées. <auto-repeat-line-width>-
Une fonction
repeat(), avecautocomme premier argument et une ou plusieurs valeurs<line-width>comme arguments suivants. Les valeurs<line-width>fournies sont répétées autant de fois que nécessaire pour remplir les valeurs de toutes les règles qui ne sont pas explicitement définies par d'autres composants de la valeur de la propriété.
Description
La propriété raccourcie rule-width définit les largeurs des segments de règle tracés dans les gouttières entre les colonnes et les lignes des conteneurs multi-colonnes, flexibles et grilles comportant plus d'une ligne ou d'une colonne.
La valeur est une liste de composants séparés par des virgules, qui peut inclure des types <line-width>, <repeat-line-width> et <auto-repeat-line-width>.
La propriété rule-width, ainsi que les propriétés rule-color et rule-style, peut être définie à l'aide de la propriété raccourcie rule.
Si la valeur de la propriété ne consiste qu'en un seul <line-width>, toutes les règles de lignes et de colonnes ont cette largeur. Si nous déclarons ce qui suit, toutes les règles sont de 3px :
rule-width: 3px;
Lorsque plusieurs valeurs <line-width> sont déclarées, elles sont appliquées aux règles dans l'ordre défini. S'il y a plus de règles que de valeurs <line-width>, la liste des largeurs de ligne est répétée jusqu'à ce que chaque règle ait une largeur. Si nous déclarons ce qui suit, par exemple, chaque règle horizontale et verticale impaire est thin, et chaque règle paire est 1em.
rule-width: thin, 1em;
Largeurs de ligne répétées
La fonction repeat(), avec un entier de 1 ou plus comme premier argument, peut être utilisée pour répéter une liste valide de valeurs CSS <line-width> passées comme arguments suivants le nombre de fois défini. Cela permet de répéter les mêmes largeurs un nombre défini de fois sans répéter les valeurs. Les déclarations suivantes sont équivalentes :
rule-width: 1rem, thick, thin, thick, thin, thick, thin;
rule-width: 1rem, repeat(3, thick, thin);
Vous pouvez utiliser n'importe quelle valeur <line-width>, y compris les propriétés personnalisées qui se résolvent en une valeur <line-width>. L'utilisation de repeat() peut rendre les valeurs plus faciles à écrire, en particulier lors de l'utilisation de calculs de longueurs complexes. Elle permet d'écrire un motif récurrent à l'aide d'une seule fonction, quel que soit le nombre de colonnes ou de lignes.
Répétition automatique des largeurs de ligne
La fonction repeat(), avec auto comme premier argument au lieu d'un entier positif, peut également être utilisée. Avec auto comme premier argument, la liste des valeurs <line-width> passées comme arguments suivants est répétée autant de fois que nécessaire pour remplir les valeurs de toutes les règles qui ne sont pas explicitement définies par d'autres composants de la valeur de la propriété.
rule-width: thin, repeat(auto, medium), thin;
Dans ce cas, les règles de la première et de la dernière colonne et ligne sont toujours thin, et toutes les autres règles sont medium. S'il n'y a que 2 ou 3 colonnes et lignes, il n'y a pas de règles de taille moyenne.
Le mot-clé auto dans la fonction repeat() crée un répéteur automatique qui remplit les valeurs des règles de colonnes et de lignes qui ne reçoivent pas autrement de valeurs provenant d'autres parties de la liste, empêchant la liste d'être répétée. Au maximum, une seule occurrence de repeat(auto, <width>) peut être présente dans une valeur rule-width.
Définition formelle
Valeur introuvable dans la base de donnéesSyntaxe formelle
rule-width =
<'column-rule-width'>
<column-rule-width> =
<line-width-list> |
<auto-line-width-list>
<line-width-list> =
<line-width-or-repeat>#
<auto-line-width-list> =
<line-width-or-repeat>#? , <auto-repeat-line-width> , <line-width-or-repeat>#?
<line-width-or-repeat> =
<line-width> |
<repeat-line-width>
<auto-repeat-line-width> =
repeat( auto , [ <line-width> ]# )
<line-width> =
<length [0,∞]> |
hairline |
thin |
medium |
thick
<repeat-line-width> =
repeat( [ <integer [1,∞]> ] , [ <line-width> ]# )
<integer> =
<number-token>
Exemples
>Exemple simple
Dans cet exemple, nous définissons une seule largeur pour les lignes tracées entre les colonnes et les lignes des éléments dans un conteneur de grille.
HTML
Nous créons une liste de 75 éléments. La plupart du HTML est masqué pour plus de concision.
<ul>
<li>1</li>
<li>2</li>
...
<li>74</li>
<li>75</li>
</ul>
CSS
Nous définissons la liste non ordonnée comme un conteneur de grille à 10 colonnes. Nous incluons une gouttière (gap) de 5px pour fournir suffisamment d'espace entre les éléments afin d'accueillir notre règle rouge en pointillés de 3px :
ul {
display: grid;
grid-template-columns: repeat(10, 1fr);
list-style-type: none;
gap: 5px;
rule-style: dashed;
rule-color: red;
rule-width: 3px;
}
li {
text-align: center;
aspect-ratio: 1;
}
Résultat
Valeurs répétées
Cet exemple démontre comment, lorsque la liste des largeurs contient moins de valeurs que le nombre de règles de colonnes ou de lignes, les valeurs sont répétées.
En utilisant le même HTML et CSS que dans l'exemple précédent, nous incluons trois largeurs séparées par des virgules comme rule-width.
ul {
rule-width: thin, 6px, 12px;
}
Comme le conteneur de grille a 8 lignes et 10 colonnes, il y a sept et neuf gouttières dans chaque direction, respectivement, donc la séquence de trois valeurs <line-width> est répétée dans les deux directions.
Utiliser la fonction repeat()
Cet exemple démontre l'utilisation de la fonction repeat() dans la valeur de la propriété rule-width et comment cette fonction peut aider à réduire la verbosité des déclarations de valeurs.
Nous utilisons le même HTML et CSS que dans les exemples précédents. De plus, nous déclarons deux propriétés personnalisées, que nous utilisons dans une fonction repeat() à l'intérieur de notre valeur rule-width. La fonction repeat() définit une liste de deux valeurs <line-width> à répéter 3 fois.
ul {
--base: 0.5vw;
--secondary: 1vw;
rule-width:
15px,
repeat(
4,
min(calc(var(--base) + 3px), 10px),
abs(calc(var(--secondary) - 2px))
),
15px;
}
La fonction repeat() répète deux valeurs de largeur quatre fois, créant une liste de dix valeurs de largeur. Comme il y a moins de gouttières de colonnes et de lignes que de largeurs totales, les dernières valeurs de la liste sont ignorées.
Utiliser auto dans repeat()
Cet exemple démontre l'utilisation de auto au lieu d'un entier dans la fonction repeat().
En utilisant repeat(auto, <line-width>), nous définissons toutes les règles de colonnes et de lignes à 1px, sauf la première et la dernière, que nous définissons à 5px.
ul {
rule-width: 5px, repeat(auto, 1px), 5px;
}
Spécifications
| Spécification |
|---|
| CSS Gaps Module Level 1> # propdef-rule-width> |
Compatibilité des navigateurs
Voir aussi
- La propriété
rule-color - La propriété
rule-style - La propriété
column-rule-width - La propriété
row-rule-width - La propriété raccourcie
rule - Le module des espaces CSS