Aller au contenu

Propriété CSS box-shadow

La propriété box-shadow vous permet d’ajouter plusieurs ombres autour d’un élément en spécifiant les valeurs du décalage horizontal, du décalage vertical, du rayon de flou, du rayon d’étalement, de la couleur et du mot-clé inset.

La propriété box-shadow fait partie des propriétés CSS3.

Vous pouvez ajouter des effets séparés par des virgules. Si vous spécifiez un border-radius sur l’élément avec une ombre portée, l’ombre portée prendra les mêmes coins arrondis.

Ce sont deux valeurs qui définissent le décalage de l’ombre. H-offset spécifie la distance horizontale. Les valeurs positives placent l’ombre à droite de l’élément. Les valeurs négatives la placent à gauche. V-offset spécifie la distance verticale. Une valeur positive place l’ombre sous l’élément, tandis qu’une valeur négative la place au-dessus. Si les deux valeurs sont 0, l’ombre apparaît directement derrière l’élément.

La troisième valeur est le rayon de flou. Elle est facultative. Plus le nombre est élevé, plus le flou devient grand et léger. Les valeurs négatives ne sont pas valides. Si elle est omise ou définie à 0, le bord de l’ombre est net.

La quatrième valeur est le rayon d’étalement. Elle est facultative. Les valeurs positives font s’étendre l’ombre, et les valeurs négatives la font rétrécir. Si elle est omise ou définie à 0, l’ombre a la même taille que l’élément.

La cinquième valeur est la couleur. Elle est facultative. Si elle est omise, la couleur par défaut de l’ombre est la couleur de texte calculée de l’élément.

La sixième valeur est le mot-clé inset. Il est facultatif et peut être placé n’importe où dans la définition de l’ombre. Lorsqu’il est présent, il crée une ombre interne au lieu d’une ombre portée.

Valeur initialenone
S’applique àTous les éléments. Elle s’applique aussi à ::first-letter.
HéritéeNon.
AnimableOui. L’ombre de la boîte est animable.
VersionCSS3
Syntaxe DOMobject.style.boxShadow = "15px 25px 35px gray";

Syntaxe

Syntaxe de la propriété CSS box-shadow

css
box-shadow: none | h-offset v-offset blur-radius spread-radius color inset;

Essayons d’ajouter des ombres à un élément.

Exemple de la propriété box-shadow :

Exemple de la propriété CSS box-shadow

html
<!DOCTYPE html>
<html>
  <head>
    <style>
      div {
        width: 150px;
        height: 50px;
        background-color: #eee;
        box-shadow: 5px 4px 10px #1c87c9;
      }
    </style>
  </head>
  <body>
    <h2>Box-shadow example</h2>
    <div></div>
  </body>
</html>

Résultat

CSS box-shadow property

Ombres multiples

Vous avez la possibilité de séparer plusieurs fois box-shadow par des virgules. Par exemple, le code ci-dessous affichera 3 ombres avec plusieurs couleurs et positions sur le même élément.

Exemple d’utilisation de la propriété box-shadow pour ajouter plusieurs ombres à l’élément :

Exemple de la propriété CSS box-shadow avec plusieurs valeurs

html
<!DOCTYPE html>
<html>
  <head>
    <style>
      div {
        width: 50%;
        height: 100px;
        border: 1px solid;
        padding: 10px;
        box-shadow: 5px 5px #1c87c9, 10px 10px #ccc, 15px 15px #8ebf42;
      }
    </style>
  </head>
  <body>
    <h2>Multiple shadows with box-shadow.</h2>
    <div></div>
  </body>
</html>

Résultat

Multiple shadows with box-shadow property

Maintenant, donnons à l’élément une valeur inset. Elle ajoute une ombre à l’intérieur de la boîte.

Exemple de la propriété box-shadow avec la valeur "inset" :

Exemple de la propriété CSS box-shadow avec la valeur inset

html
<!DOCTYPE html>
<html>
  <head>
    <style>
      div {
        width: 150px;
        height: 50px;
        background-color: #eee;
        box-shadow: inset 8px 8px 10px grey, 8px 8px 10px black;
      }
    </style>
  </head>
  <body>
    <h2>Box-shadow with inset value</h2>
    <div></div>
  </body>
</html>

Résultat

Box-shadow property with inset value

Ombre sur un seul côté

Pour créer une ombre qui apparaît uniquement d’un côté d’une boîte, utilisez une valeur négative de rayon d’étalement.

Propriété CSS box-shadow

css
.shadow {
  box-shadow: 0 10px 8px -4px yellow;
}

Exemple de la propriété box-shadow avec une valeur négative de rayon d’étalement :

Exemple de la propriété box-shadow

html
<!DOCTYPE html>
<html>
  <head>
    <style>
      .shadow {
        width: 100px;
        height: 100px;
        box-shadow: 0 10px 8px -4px yellow;
        background-color: #cccccc;
      }
    </style>
  </head>
  <body>
    <div class="shadow"></div>
  </body>
</html>

Valeurs

ValeurDescriptionPlay it
noneAucune ombre n’est appliquée.Play it »
h-offsetObligatoire. Le décalage horizontal de l’ombre. Une valeur positive place l’ombre à droite de la boîte, une valeur négative la place à gauche de la boîte.Play it »
v-offsetObligatoire. Le décalage vertical de l’ombre. Une valeur positive place l’ombre sous la boîte, une valeur négative la place au-dessus de la boîte.Play it »
blur-radiusFacultatif. L’ombre est floutée. Plus le nombre est élevé, plus l’ombre sera floue. Les valeurs négatives ne sont pas valides.Play it »
spread-radiusFacultatif. L’ombre s’étale. Une valeur positive augmente la taille de l’ombre, une valeur négative la réduit.Play it »
colorFacultatif. La couleur de l’ombre. Si elle est omise, elle prend par défaut la couleur du texte de l’élément.Play it »
insetFacultatif. Un mot-clé facultatif qui peut être placé n’importe où dans la définition de l’ombre. Il transforme une ombre externe en ombre interne.Play it »
initialDéfinit la propriété sur sa valeur par défaut.Play it »
inheritHérite la propriété de son élément parent.

Practice

Quelles propriétés peuvent être ajustées lors de la définition d’un box-shadow en CSS ?

Trouvez-vous cela utile?

Aperçu dual-run — comparez avec les routes Symfony en production.