W3docs

Propriétés CSS3

Référence groupée de toutes les propriétés CSS3 majeures, organisées par module (Animation, Flexbox, Grid, Transforms, etc.) avec des liens vers les chapitres détaillés.

CSS3 est la dernière évolution du langage des feuilles de style en cascade. Plutôt qu'une version monolithique unique, CSS3 est divisé en modules indépendants — Animations, Flexbox, CSS Grid, Arrière-plans et Bordures, Transformations, Filtres, et bien d'autres — que les navigateurs peuvent implémenter et livrer séparément. Chaque module a ajouté de nouvelles propriétés à l'ensemble original de CSS2, vous offrant des coins arrondis, des dégradés, des ombres, des animations, des mises en page flexibles et en grille, ainsi que des filtres visuels sans images ni JavaScript.

Cette page est un index de référence rapide des propriétés introduites ou considérablement étendues dans CSS3, organisées par le module auquel elles appartiennent. Chaque ligne renvoie à un chapitre complet avec la syntaxe, les valeurs et des exemples interactifs.

Si vous débutez avec ce langage, commencez par les chapitres Introduction au CSS et Syntaxe CSS avant de vous plonger dans les propriétés individuelles.

Comment utiliser cette référence

  • Trouvez une propriété par groupe. Les titres ci-dessous reflètent les modules CSS3 : si vous avez besoin d'une propriété de mise en page, cherchez sous Flexible Box Layout ou Grid Layout ; pour le mouvement, cherchez sous Animation ou Transitions ; pour les effets visuels, cherchez sous Effets de filtre ou Propriétés de transformation.
  • Cliquez pour les détails. Chaque propriété renvoie à son propre chapitre avec la liste complète des valeurs, les valeurs par défaut et des démonstrations interactives.
  • Vérifiez la compatibilité navigateur. Les modules CSS3 ont atteint une prise en charge stable et sans préfixe à des moments différents. La plupart des propriétés ci-dessous fonctionnent dans tous les navigateurs modernes, mais vérifiez toujours la compatibilité des ajouts plus récents (par exemple, certaines propriétés column-*) avant de les utiliser en production.

Note sur les préfixes vendeurs

Pendant que les modules CSS3 étaient encore expérimentaux, les navigateurs livraient les propriétés avec des préfixes vendeurs tels que -webkit-, -moz-, -ms-, et -o-. Vous pouvez encore les rencontrer dans des bases de code plus anciennes :

/* Older code — prefixes were needed during the experimental phase */
.box {
  -webkit-transform: rotate(15deg);
  -moz-transform:    rotate(15deg);
  transform:         rotate(15deg); /* Always list the unprefixed property last */
}

Pour les propriétés listées ci-dessous, vous n'avez presque jamais besoin de préfixes aujourd'hui — écrivez le nom standard sans préfixe. Utilisez les préfixes uniquement lorsque vous devez prendre en charge un navigateur obsolète, et listez toujours la propriété standard en dernier afin qu'elle remplace les autres.

CSS3 vs CSS2 — Qu'est-ce qui a changé ?

CSS2 couvrait le modèle de boîte fondamental, les couleurs, les polices et le positionnement. CSS3 a construit sur cette base avec les capacités suivantes qui étaient absentes ou très limitées auparavant :

  • Coins arrondis et images de bordureborder-radius, border-image
  • Ombresbox-shadow, text-shadow
  • Dégradés et arrière-plans multiplesbackground-size, background-clip
  • Mises en page flexibles et en grille — Flexbox (flex, align-items, …), Grid (grid, grid-template-columns, …)
  • Transformations 2D et 3Dtransform, perspective
  • Changements d'état fluidestransition
  • Animations par images-clésanimation, @keyframes
  • Texte multi-colonnescolumn-count, column-gap
  • Filtres visuelsfilter (flou, luminosité, contraste, …)
  • Transparence personnaliséeopacity

Liste des propriétés CSS3

Propriétés d'animation

Les animations par images-clés vous permettent de décrire comment un élément passe par une série d'instantanés de style. La règle @keyframes définit ces instantanés ; les propriétés animation-* les attachent et les contrôlent sur un élément.

/* Minimal animation example */
@keyframes slide-in {
  from { transform: translateX(-100%); opacity: 0; }
  to   { transform: translateX(0);     opacity: 1; }
}

.banner {
  animation: slide-in 0.4s ease-out both;
}
PropriétéDescription
animationRaccourci qui définit toutes les sous-propriétés d'animation en une seule déclaration.
animation-delaySpécifie quand une animation démarre (positif = délai ; négatif = démarrage en milieu de cycle).
animation-directionContrôle la direction de lecture : normal, reverse, alternate, ou alternate-reverse.
animation-durationDéfinit la durée d'un cycle d'animation (ex. : 0.4s, 500ms).
animation-fill-modeDéfinit le style de l'élément avant le début et/ou après la fin de l'animation (forwards, backwards, both).
animation-iteration-countNombre de fois que l'animation se joue — un nombre ou infinite.
animation-nameNomme la règle @keyframes à appliquer.
animation-play-stateMet en pause (paused) ou reprend (running) une animation — utile pour les boutons bascule.
animation-timing-functionCourbe d'accélération pour chaque cycle : ease, linear, ease-in-out, cubic-bezier(…), steps(…).
@keyframes (règle at)Définit les instantanés de style intermédiaires (images-clés) par lesquels une animation passe.

Propriétés d'arrière-plan

CSS3 a étendu les arrière-plans pour prendre en charge le dimensionnement, les régions de rognage et plusieurs images superposées sur un seul élément.

/* Responsive hero with background-size */
.hero {
  background-image: url('/img/hero.jpg');
  background-size: cover;       /* fills the box; crop as needed */
  background-position: center;
  background-clip: border-box;  /* default; image reaches border edge */
}
PropriétéDescription
background-clipContrôle jusqu'où l'arrière-plan s'étend — border-box, padding-box, ou content-box.
background-originDéfinit l'origine de background-positionborder-box, padding-box, ou content-box.
background-sizeDéfinit la taille de l'image d'arrière-plan : une longueur, auto, cover (remplit en rognant si nécessaire), ou contain (s'adapte entièrement).

Propriétés de bordure

CSS3 a ajouté les coins arrondis et les bordures basées sur des images — des fonctionnalités qui nécessitaient auparavant des astuces avec des images.

/* Rounded button */
.btn {
  border-radius: 6px;
  border: 2px solid steelblue;
}

/* Pill shape */
.badge {
  border-radius: 999px;
}
PropriétéDescription
border-bottom-left-radiusArrondit le coin inférieur gauche. Accepte un rayon (cercle) ou deux (ellipse).
border-bottom-right-radiusArrondit le coin inférieur droit.
border-imageUtilise une image comme bordure, découpée en neuf régions.
border-image-outsetDistance à laquelle l'image de bordure s'étend au-delà de la boîte de bordure.
border-image-repeatIndique si les tuiles du bord de l'image de bordure sont stretched, repeated, ou rounded.
border-image-sliceDivise l'image source en neuf tranches (quatre coins, quatre bords, centre).
border-image-sourceL'URL d'image ou le dégradé utilisé comme bordure.
border-image-widthLargeur des tranches d'image de bordure (peut différer du border-width CSS).
border-radiusRaccourci pour les quatre rayons de coin.
border-top-left-radiusArrondit le coin supérieur gauche.
border-top-right-radiusArrondit le coin supérieur droit.

Couleur et transparence

PropriétéDescription
opacityDéfinit la transparence d'un élément entier (et de ses enfants) de 0 (invisible) à 1 (entièrement opaque). Pour une transparence par canal, utilisez rgba() ou hsla() dans les valeurs color / background-color à la place.

Effets de filtre

La propriété filter applique des effets graphiques (flou, luminosité, contraste, ombre portée, etc.) directement en CSS — sans éditeur d'image.

.card:hover img {
  filter: brightness(1.1) saturate(1.2);
  transition: filter 0.2s ease;
}

.modal-backdrop {
  filter: blur(4px);
}
PropriétéDescription
filterApplique une ou plusieurs fonctions de filtre : blur(), brightness(), contrast(), drop-shadow(), grayscale(), hue-rotate(), invert(), opacity(), saturate(), sepia(), et url() (filtre SVG).

Flexible Box Layout

Flexbox est un modèle de mise en page unidimensionnel — il distribue les éléments le long d'un seul axe (ligne ou colonne) et gère automatiquement l'alignement, l'espacement et le retour à la ligne.

/* Classic centered card */
.card-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  justify-content: center;
  align-items: stretch;
}

.card {
  flex: 1 1 300px; /* grow | shrink | basis */
}

Pour un guide complet, consultez Le guide ultime de Flexbox.

PropriétéDescription
align-contentAligne les lignes d'un conteneur flex sur l'axe transversal lorsqu'il y a de l'espace supplémentaire (flex-start, flex-end, center, space-between, space-around, stretch).
align-itemsAlignement par défaut sur l'axe transversal pour tous les éléments flex d'un conteneur.
align-selfRemplace align-items pour un seul élément flex.
flexRaccourci pour flex-grow, flex-shrink et flex-basis.
flex-basisLa taille initiale d'un élément flex avant la distribution de l'espace libre.
flex-directionDirection de l'axe principal : row, row-reverse, column, ou column-reverse.
flex-flowRaccourci pour flex-direction et flex-wrap.
flex-growDans quelle mesure un élément flex grandit par rapport aux éléments voisins lorsqu'il y a de l'espace supplémentaire.
flex-shrinkDans quelle mesure un élément flex rétrécit par rapport aux éléments voisins lorsque l'espace est limité.
flex-wrapSi les éléments flex passent sur plusieurs lignes (nowrap, wrap, wrap-reverse).
justify-contentAligne les éléments sur l'axe principal (flex-start, flex-end, center, space-between, space-around, space-evenly).
justify-itemsAlignement par défaut sur l'axe en ligne pour tous les éléments de grille (également utilisé dans Grid).
orderModifie l'ordre visuel d'un élément flex ou de grille sans altérer l'ordre du DOM.

Propriétés de police

PropriétéDescription
font-size-adjustPréserve la taille apparente du texte lorsque la police de premier choix est indisponible, en ajustant la taille de la police de substitution pour correspondre au ratio de hauteur-x.
font-stretchSélectionne une variante condensée ou élargie d'une famille de polices (ex. : condensed, expanded, ultra-condensed).

CSS Grid

CSS Grid est un système de mise en page bidimensionnel — il place les éléments dans des lignes et des colonnes simultanément, ce qui le rend idéal pour les mises en page de niveau page et les grilles de composants complexes.

/* Three-column responsive grid */
.layout {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 1.5rem;
}

/* Named template areas */
.page {
  display: grid;
  grid-template-areas:
    "header header"
    "sidebar main"
    "footer footer";
  grid-template-columns: 200px 1fr;
  grid-template-rows: auto 1fr auto;
}
PropriétéDescription
gridRaccourci pour toutes les propriétés du conteneur de grille.
grid-areaAssigne un élément de grille à une zone nommée ou spécifie sa position en ligne/colonne comme raccourci.
grid-auto-columnsDéfinit la taille des colonnes pour les pistes créées implicitement (lorsque des éléments débordent la grille explicite).
grid-auto-flowContrôle la façon dont les éléments placés automatiquement remplissent la grille (row, column, dense).
grid-auto-rowsDéfinit la taille des lignes pour les pistes créées implicitement.
grid-columnRaccourci pour grid-column-start et grid-column-end.
grid-column-endOù un élément se termine sur l'axe des colonnes (numéro de ligne, étendue ou nom).
grid-column-gapEspace entre les colonnes (remplacé par column-gap dans les CSS modernes).
grid-column-startOù un élément commence sur l'axe des colonnes.
grid-gapRaccourci pour row-gap et column-gap (ancien nom ; préférez gap).
grid-rowRaccourci pour grid-row-start et grid-row-end.
grid-row-endOù un élément se termine sur l'axe des lignes.
grid-row-gapEspace entre les lignes (remplacé par row-gap dans les CSS modernes).
grid-row-startOù un élément commence sur l'axe des lignes.
grid-templateRaccourci pour grid-template-rows, grid-template-columns et grid-template-areas.
grid-template-areasDéfinit des zones de modèle nommées en utilisant une syntaxe ASCII art basée sur des chaînes.
grid-template-columnsDéfinit le nombre et la taille des colonnes explicites (longueurs, pourcentages, unités fr, repeat(), minmax()).
grid-template-rowsDéfinit le nombre et la taille des lignes explicites.

Propriétés de mise en page multi-colonnes

La mise en page multi-colonnes fait circuler le contenu automatiquement sur un nombre ou une largeur définis de colonnes — similaire à une mise en page de journal.

/* Two-column article body */
.article-body {
  columns: 2 400px;   /* shorthand: column-count column-width */
  column-gap: 2rem;
  column-rule: 1px solid #ddd;
}

h2 {
  column-span: all; /* heading breaks out of columns */
}
PropriétéDescription
column-countNombre de colonnes dans lesquelles le contenu est divisé.
column-fillSi les colonnes sont équilibrées (balance) ou remplies séquentiellement (auto).
column-gapEspace entre les colonnes (également utilisé dans Flexbox et CSS Grid).
column-ruleRaccourci pour la ligne de séparation entre les colonnes (style, largeur, couleur).
column-rule-colorCouleur du filet entre les colonnes.
column-rule-styleStyle de ligne du filet (solid, dashed, dotted, etc.).
column-rule-widthÉpaisseur du filet entre les colonnes.
column-spanSi un élément s'étend sur une colonne (none) ou sur toutes les colonnes (all).
column-widthLargeur de colonne idéale ; le navigateur crée autant de colonnes que possible.
columnsRaccourci pour column-count et column-width.

Propriétés de contour

PropriétéDescription
outline-offsetÉloigne le contour du bord de bordure de l'élément (positif = vers l'extérieur ; négatif = vers l'intérieur). Contrairement aux marges, il n'affecte pas la mise en page.

Propriétés de texte

CSS3 a ajouté le contrôle du débordement de texte, du retour à la ligne, des ombres et d'un style de décoration affiné.

/* Truncate long titles with ellipsis */
.card-title {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Subtle heading shadow */
h1 {
  text-shadow: 1px 2px 4px rgba(0, 0, 0, 0.25);
}
PropriétéDescription
tab-sizeLargeur d'un caractère de tabulation dans les blocs <pre> et de code (nombre d'espaces ou longueur).
text-align-lastAlignement de la dernière ligne (ou de la seule ligne) dans un bloc de texte justifié.
text-decoration-colorCouleur de la décoration soulignement, surlignement ou barré.
text-decoration-lineQuelles lignes de décoration sont tracées : underline, overline, line-through, ou none.
text-decoration-styleStyle de la ligne de décoration : solid, double, dotted, dashed, ou wavy.
text-justifyMéthode de justification utilisée lorsque text-align: justify est actif (auto, inter-word, inter-character).
text-overflowComment le texte en ligne qui déborde est signalé : clip (coupé) ou ellipsis (affiche ). Nécessite overflow: hidden et white-space: nowrap.
text-shadowAjoute une ou plusieurs ombres au texte. Syntaxe : offset-x offset-y blur-radius color.
word-breakOù les sauts de ligne se produisent dans les mots : normal, break-all, ou keep-all.
word-wrapSi le navigateur peut couper un mot non sécable pour éviter le débordement (normal ou break-word). Également standardisé sous le nom overflow-wrap.

Propriétés de transformation

Les transformations déplacent, font pivoter, redimensionnent ou inclinent les éléments dans l'espace 2D ou 3D sans affecter le flux du document.

/* 2D card flip on hover */
.card {
  perspective: 600px;
  transform-style: preserve-3d;
  transition: transform 0.5s ease;
}

.card:hover {
  transform: rotateY(180deg);
}

.card-back {
  backface-visibility: hidden;
}
PropriétéDescription
backface-visibilitySi la face arrière d'un élément transformé en 3D est visible lorsqu'elle est orientée à l'opposé (visible ou hidden). Essentiel pour les effets de retournement de carte.
perspectiveDistance entre le spectateur et le plan z=0 ; des valeurs plus faibles = un effet 3D plus dramatique. S'applique au parent de l'élément transformé.
perspective-originLa position x/y du point de fuite pour la transformation perspective.
transformApplique des fonctions de transformation 2D ou 3D : translate(), rotate(), scale(), skew(), matrix(), et leurs variantes 3D.
transform-originLe point autour duquel une transformation est appliquée (par défaut : 50% 50% — centre de l'élément).
transform-styleSi les enfants sont rendus dans l'espace 3D (preserve-3d) ou aplatis dans le plan de l'élément (flat).

Propriétés de transition

Les transitions animent les changements de propriété d'une valeur à une autre sur une durée spécifiée lorsqu'une propriété CSS change (ex. : au survol :hover).

/* Smooth color + shadow on hover */
.btn {
  background-color: steelblue;
  box-shadow: none;
  transition: background-color 0.2s ease, box-shadow 0.2s ease;
}

.btn:hover {
  background-color: dodgerblue;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}

Transitions vs. animations : utilisez transition pour les changements pilotés par l'état (survol, focus, actif) — elles sont plus simples à écrire. Utilisez animation avec @keyframes pour un mouvement indépendant, en boucle ou en plusieurs étapes qui se déclenche sans interaction de l'utilisateur.

PropriétéDescription
transitionRaccourci pour transition-property, transition-duration, transition-timing-function et transition-delay.
transition-delayTemps d'attente avant le démarrage de la transition.
transition-durationDurée de la transition du début à la fin.
transition-propertyQuelle propriété CSS (ou all) la transition s'applique.
transition-timing-functionLa courbe de vitesse de la transition (ease, linear, ease-in, ease-out, ease-in-out, cubic-bezier(…), steps(…)).

Propriétés de mise en forme visuelle

PropriétéDescription
box-shadowAjoute une ou plusieurs ombres autour de la boîte d'un élément. Syntaxe : offset-x offset-y blur spread color. Utilisez inset pour une ombre intérieure.
box-sizingDétermine si width et height incluent le rembourrage et la bordure (border-box) ou les excluent (content-box, la valeur par défaut CSS2). Presque tous les projets modernes définissent *, *::before, *::after { box-sizing: border-box; }.
overflow-xContrôle le débordement horizontal : visible, hidden, clip, scroll, ou auto.
overflow-yContrôle le débordement vertical : visible, hidden, clip, scroll, ou auto.
resizeRend un élément redimensionnable par l'utilisateur : both, horizontal, vertical, ou none. Nécessite que overflow soit différent de visible.

Références connexes

Une fois que vous savez quelle propriété vous avez besoin, ces chapitres couvrent en profondeur les fonctionnalités CSS3 les plus utilisées :

Pratique

Pratique
Lesquelles des propriétés suivantes sont des propriétés CSS3 valides ?
Lesquelles des propriétés suivantes sont des propriétés CSS3 valides ?
Was this page helpful?