ToolDeck

Convertisseur d'unités CSS

Convertissez les unités CSS entre px, rem, em, vw, vh et %

px16
rem1
em1
vw1.111111
vh1.777778
%100
pt12
cm0.4233331
mm4.233331
in0.1666667

Qu'est-ce que la conversion d'unités CSS ?

Un convertisseur d'unités CSS est un outil qui traduit les valeurs de longueur entre différents systèmes de mesure CSS. CSS définit plus d'une douzaine d'unités de longueur, réparties en deux groupes : les unités absolues comme px, pt, cm et in, qui correspondent à des mesures physiques fixes, et les unités relatives comme rem, em, vw, vh et %, qui dépendent du contexte — taille de police ou dimensions du viewport.

Les navigateurs résolvent toutes les longueurs CSS en pixels lors du rendu. Lorsque vous écrivez 1.5rem, le navigateur multiplie 1.5 par la taille de police racine (généralement 16px) pour obtenir 24px. Lorsque vous écrivez 50vw, il prend la moitié de la largeur courante du viewport. Comprendre ces relations est indispensable pour construire des mises en page qui s'adaptent à tous les appareils et respectent les préférences utilisateur, comme une taille de police personnalisée définie dans le navigateur.

La spécification CSS Values and Units Module Level 4 (W3C) définit les ratios de conversion exacts entre toutes les unités absolues : 1in = 96px = 72pt = 2.54cm = 25.4mm. Les unités relatives n'ont pas de ratio fixe car elles dépendent du contexte d'exécution. Un convertisseur d'unités CSS gratuit vous permet de calculer ces relations instantanément en fonction de votre taille de police racine et de vos dimensions de viewport, sans écrire une seule ligne de code.

Pourquoi utiliser un convertisseur d'unités CSS ?

Convertir des unités CSS à la main, c'est mémoriser des ratios, sortir une calculatrice et vérifier ses calculs. Cet outil effectue la conversion dans votre navigateur, sans friction.

Conversion instantanée
Saisissez une valeur, choisissez l'unité source et obtenez les résultats dans les 10 unités CSS en une seule fois. Plus besoin de calculer séparément px vers rem, px vers vw ou px vers pt.
🔒
Données privées
Toutes les conversions s'effectuent localement dans votre navigateur. Aucune valeur n'est envoyée à un serveur, journalisée ou stockée. Fermez l'onglet et les données disparaissent.
🎯
Adapté à votre contexte
Définissez votre taille de police racine, la largeur du viewport, la hauteur du viewport et la taille de police parente. Le convertisseur utilise ces valeurs pour produire des résultats précis pour les unités rem, em, vw, vh et %.
📏
Toutes les unités de longueur CSS couvertes
Prend en charge px, rem, em, vw, vh, %, pt, cm, mm et in. Que vous travailliez sur des mises en page écran, des feuilles de style d'impression ou de la typographie responsive, toutes les unités sont disponibles.

Cas d'utilisation du convertisseur d'unités CSS

Développement frontend
Convertissez les valeurs en pixels d'une maquette en rem pour une bibliothèque de composants. Lorsqu'une maquette Figma spécifie 24px d'espacement, convertissez-les en 1.5rem pour que la mise en page s'adapte aux préférences de taille de police de l'utilisateur.
Ingénierie backend / full-stack
Générez des templates PDF ou d'e-mail dont les dimensions sont spécifiées en pt ou cm. Convertissez vos valeurs CSS en pixels vers des tailles de points prêtes à l'impression pour le rendu côté serveur avec des outils comme Puppeteer ou wkhtmltopdf.
DevOps / pipelines CI
Vérifiez que les tokens d'espacement d'un design system utilisent des unités cohérentes d'une étape de build à l'autre. Confirmez rapidement qu'une base de 16px produit les valeurs rem attendues dans le CSS généré.
QA / tests visuels
Vérifiez les styles calculés lors de tests cross-browser. Lorsque les DevTools Chrome affichent une valeur calculée de 14.4px, convertissez-la en rem pour confirmer qu'elle correspond au 0.9rem attendu dans la feuille de style.
Visualisation de données
Dimensionnez des éléments SVG ou canvas en fonction des dimensions du viewport. Convertissez des largeurs de graphiques en pixels fixes en unités vw pour que les visualisations occupent un pourcentage constant de l'écran sur différents moniteurs.
Apprentissage du CSS
Comprenez la relation entre rem, em et px en expérimentant différentes tailles de base. Passez la taille de police racine de 16px à 18px et observez comment chaque valeur rem évolue.

Référence des unités de longueur CSS

CSS définit 10 unités de longueur couramment utilisées. Les unités absolues ont une conversion fixe en pixels. Les unités relatives dépendent du contexte : la taille de police racine pour rem, la taille de police parente pour em, et le viewport du navigateur pour vw et vh.

UnitéNomTaille par défautRelative à
pxPixel1pxFixed; 1px = 1/96 of 1in on screens
remRoot em16px (default)Relative to <html> font-size
emEmInheritedRelative to parent element font-size
vwViewport width1% of viewportRelative to browser window width
vhViewport height1% of viewportRelative to browser window height
%PercentageVariesRelative to parent property value
ptPoint1.333pxPrint unit; 1pt = 1/72 of 1in
cmCentimeter37.795pxPhysical unit; 1cm = 96px / 2.54
mmMillimeter3.7795pxPhysical unit; 1mm = 1cm / 10
inInch96pxPhysical unit; 1in = 96px (CSS spec)

Unités CSS absolues vs relatives

Le choix entre unités absolues et relatives détermine la façon dont votre mise en page réagit aux différentes résolutions et aux paramètres utilisateur. Chaque groupe présente des compromis distincts.

Unités absolues (px, pt, cm, mm, in)
Les unités absolues produisent la même taille physique quel que soit le contexte. Utilisez px pour les bordures, les ombres et les éléments qui ne doivent pas être mis à l'échelle. Utilisez pt pour les feuilles de style d'impression. La spécification CSS définit 1in = 96px, même si la taille physique réelle varie selon le DPI de l'écran.
Unités relatives (rem, em, vw, vh, %)
Les unités relatives s'adaptent à leur contexte de référence. Utilisez rem pour les tailles de police et les espacements afin de respecter les préférences utilisateur. Utilisez em pour la mise à l'échelle interne aux composants (padding relatif à la taille de police de l'élément). Utilisez vw/vh pour les mises en page occupant tout le viewport, comme les sections hero.

Table de conversion px vers rem courante

Cette table suppose une taille de police racine de 16px (valeur par défaut du navigateur). Si votre projet utilise une base différente, divisez la valeur en pixels par votre base pour obtenir l'équivalent rem.

pxremptUsage typique
100.6257.5Small caption text
120.759Body text (compact)
140.87510.5Default body text
16112Root font-size (browser default)
181.12513.5Large body text
201.2515H4 heading
241.518H3 heading
32224H2 heading
48336H1 heading
64448Display / hero text

Exemples de code

Ces exemples montrent comment convertir des unités CSS par programmation en JavaScript, Python, via des propriétés CSS personnalisées et en Sass.

JavaScript
// px to rem (given root font-size of 16px)
const pxToRem = (px, base = 16) => px / base
pxToRem(24)  // → 1.5

// rem to px
const remToPx = (rem, base = 16) => rem * base
remToPx(1.5) // → 24

// px to vw (given viewport width of 1440px)
const pxToVw = (px, viewport = 1440) => (px / viewport) * 100
pxToVw(360)  // → 25

// Dynamic calculation using getComputedStyle
const rootFontSize = parseFloat(
  getComputedStyle(document.documentElement).fontSize
) // → 16 on most browsers
Python
# CSS unit converter functions

def px_to_rem(px: float, base: float = 16) -> float:
    return px / base

def rem_to_px(rem: float, base: float = 16) -> float:
    return rem * base

def px_to_vw(px: float, viewport: float = 1440) -> float:
    return (px / viewport) * 100

def px_to_pt(px: float) -> float:
    return px * 72 / 96

print(px_to_rem(24))     # → 1.5
print(rem_to_px(2.5))    # → 40.0
print(px_to_vw(720))     # → 50.0
print(px_to_pt(16))      # → 12.0
CSS (calc & custom properties)
/* Define a base scale using rem */
:root {
  --base: 16px;       /* root font-size */
  --space-1: 0.25rem; /* 4px */
  --space-2: 0.5rem;  /* 8px */
  --space-4: 1rem;    /* 16px */
  --space-8: 2rem;    /* 32px */
}

/* Fluid typography: scales between 1rem (16px) and 2.5rem (40px) */
h1 {
  font-size: clamp(1rem, 2.5vw + 0.5rem, 2.5rem);
}

/* Viewport-relative hero height */
.hero {
  height: calc(100vh - 4rem); /* full viewport minus 64px header */
}

/* Percentage-based grid */
.sidebar { width: 25%; }     /* 360px on 1440px screen */
.content { width: 75%; }     /* 1080px on 1440px screen */
SCSS (mixin)
// Reusable px-to-rem function in Sass
@use "sass:math";

$base-font-size: 16px !default;

@function rem($px) {
  @return math.div($px, $base-font-size) * 1rem;
}

// Usage
.card {
  padding: rem(24px);       // → 1.5rem
  margin-bottom: rem(32px); // → 2rem
  border-radius: rem(8px);  // → 0.5rem
  font-size: rem(14px);     // → 0.875rem
}

Questions fréquentes

Quelle est la taille de police racine par défaut dans les navigateurs ?
Tous les navigateurs majeurs (Chrome, Firefox, Safari, Edge) ont une taille de police racine par défaut de 16px. Cela signifie que 1rem = 16px, sauf si l'utilisateur ou une feuille de style remplace la taille de police de l'élément html. Certains utilisateurs l'augmentent dans les paramètres du navigateur pour l'accessibilité, ce qui fait du rem un meilleur choix par défaut pour le texte que le px.
Comment convertir px en rem ?
Divisez la valeur en pixels par la taille de police racine. Avec la base par défaut de 16px : 24px / 16 = 1.5rem. Si votre projet définit html { font-size: 10px } (un reset courant), alors 24px / 10 = 2.4rem. La formule est toujours : rem = px / taille-police-racine.
Quelle est la différence entre rem et em ?
rem est relatif à la taille de police de l'élément racine (la balise html), tandis que em est relatif à la taille de police du parent de l'élément courant. rem produit donc un dimensionnement cohérent sur toute la page, tandis que em se cumule lors de l'imbrication. Un 2em dans un parent 2em représente 4x la taille racine. Utilisez rem pour l'espacement global et les tailles de police ; utilisez em lorsque vous souhaitez un dimensionnement relatif au texte du composant.
Quand utiliser les unités vw ou vh ?
Utilisez vw pour les éléments devant s'adapter à la largeur de la fenêtre, comme les sections hero pleine largeur ou la typographie fluide (clamp avec vw). Utilisez vh pour les sections plein écran ou les mises en page occupant toute la hauteur du viewport. Soyez prudent avec vh sur les navigateurs mobiles où la barre d'adresse modifie la hauteur du viewport ; la nouvelle unité dvh (dynamic viewport height) résout ce problème.
Peut-on mélanger différentes unités CSS dans une même propriété ?
Oui. La fonction CSS calc() permet de combiner n'importe quelles unités dans une seule expression. Par exemple, width: calc(100vw - 2rem) soustrait 32px (avec la base par défaut) de la largeur totale du viewport. Vous pouvez aussi mélanger des unités dans clamp() : font-size: clamp(1rem, 2vw + 0.5rem, 2.5rem) crée une typographie fluide qui évolue entre 16px et 40px.
Combien de pixels représente 1pt en CSS ?
En CSS, 1pt = 1/72 de pouce, et 1 pouce = 96px, donc 1pt = 96/72 = 1.333px. Ce ratio est fixé dans la spécification CSS quel que soit le DPI de l'écran. Les points sont principalement utilisés dans les feuilles de style d'impression et la génération de PDF. Pour la conception écran, px ou rem sont de meilleurs choix.
Le reset font-size: 62.5% est-il encore une bonne pratique ?
Définir html { font-size: 62.5% } fait que 1rem = 10px, ce qui simplifie le calcul mental (24px = 2.4rem). Cependant, cela oblige à définir explicitement la font-size sur l'élément body et peut poser des problèmes avec des composants tiers qui supposent une base de 16px. La pratique moderne est de conserver la valeur par défaut de 16px et d'utiliser une fonction Sass ou un plugin PostCSS pour gérer la conversion.