[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/fr/docs/Web/CSS/Reference/Properties/--* [Back]  [Original]

Proprits personnalises (--*) : variables CSS - CSS | MDN

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

Proprits personnalises (--*) : variables CSS

Baseline Large disponibilit

Cette fonctionnalit est bien tablie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis avril 2017.

Les noms des proprits qui sont prfixs par deux tirets (--), comme par exemple --nom-exemple, reprsentent des proprits personnalises (custom properties) qui peuvent contenir une valeur qui pourra tre rutilise dans le document grce la fonction var().

La porte des proprits personnalises est celle des lments sur lesquels elles sont dclares. Ces personnalises contribuent la cascade : la valeur utilise d'une proprit personnalise sera dtermine par l'algorithme de la cascade.

Valeur initialevoir le texte
Applicabilittous les lments
Hriteoui
Valeur calculetel que dfini avec les variables changes
Type d'animationdiscrte

Dans cet article

Syntaxe

css
--some-keyword: left;
--some-color: #123456;
--some-complex-value: 3px 6px rgb(20 32 54);
<declaration-value>

Cette valeur correspond une squence de un ou plusieurs fragments tant que la squence ne contient pas de fragments interdits. Elle reprsente l'intgralit de ce qu'une dclaration valide peut avoir comme valeur.

Note : Les noms des proprits personnalises sont sensibles la casse --ma-couleur sera considr comme une proprit personnalise distincte de --Ma-Couleur.

Exemples

Exemple simple

HTML

html
<p id="premierParagraphe">
  Ce paragraphe devrait tre sur fond bleu avec un texte jaune.
</p>
<p id="secondParagraphe">
  Ce paragraphe devrait tre sur fond jaune avec un texte bleu.
</p>
<div id="conteneur">
  <p id="troisiemeParagraphe">
    Ce paragraphe devrait avoir un fond vert et un texte jaune.
  </p>
</div>

CSS

css
:root {
  --premiere-couleur: #1166ff;
  --seconde-couleur: #ffff77;
}

#premierParagraphe {
  background-color: var(--premiere-couleur);
  color: var(--seconde-couleur);
}

#secondParagraphe {
  background-color: var(--seconde-couleur);
  color: var(--premiere-couleur);
}

#conteneur {
  --premiere-couleur: #229900;
}

#troisiemeParagraphe {
  background-color: var(--premiere-couleur);
  color: var(--seconde-couleur);
}

Rsultat

Enregistrer les proprits personnalises avec @property

Dans cet exemple, nous utilisons la rgle @property pour enregistrer une proprit personnalise.

HTML

Notre HTML inclut une liste ordonne (<ol>) contenant trois lments de liste (<li>).

html
<ol>
  <li class="one">lment un</li>
  <li class="two">lment deux</li>
  <li class="three">lment trois</li>
</ol>

CSS

Nous utilisons la rgle @property pour enregistrer deux proprits personnalises.

css
@property --itemSize {
  syntax: "<length> | <percentage>";
  inherits: true;
  initial-value: 200px;
}

@property --borderWidth {
  syntax: "<length>";
  inherits: false;
  initial-value: 10px;
}

Nous essayons de remplacer les valeurs des proprits personnalises. Les valeurs dfinies sur .two sont valides tandis que les valeurs dfinies sur .three sont invalides.

css
ol {
  --itemSize: 100px;
  --borderWidth: 1px;
}
.two {
  --itemSize: initial;
  --borderWidth: inherit;
}
.three {
  --itemSize: large;
  --borderWidth: 3%;
}

Nous utilisons les deux proprits personnalises pour mettre en forme les lments, en dfinissant la bordure et la largeur pour tous les lments en mme temps :

css
li {
  width: var(--itemSize);
  border: var(--borderWidth) solid red;
  background-color: yellow;
  margin-bottom: 10px;
}

Rsultats

La proprit --itemSize est hrite ; la proprit --borderWidth ne l'est pas. Les proprits sont dfinies sur le parent ol, remplaant les valeurs par dfaut dfinies lors de leur enregistrement. L'lment un hrite de la taille mais pas de la largeur de la bordure de l'OL. Les mots-cls globaux, dclars pour .two, sont valides pour <length>, donc ils sont utiliss. Les valeurs dans .three sont invalides ("large" n'est pas un <length-percentage> et 3% n'est pas un <length>).

Spcifications

Spcification
CSS Custom Properties for Cascading Variables Module Level 1
# defining-variables

Compatibilit des navigateurs

Voir aussi


Web Proxy Viewer  |  New URL  |  Original Page