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é
Nom
Taille par défaut
Relative à
px
Pixel
1px
Fixed; 1px = 1/96 of 1in on screens
rem
Root em
16px (default)
Relative to <html> font-size
em
Em
Inherited
Relative to parent element font-size
vw
Viewport width
1% of viewport
Relative to browser window width
vh
Viewport height
1% of viewport
Relative to browser window height
%
Percentage
Varies
Relative to parent property value
pt
Point
1.333px
Print unit; 1pt = 1/72 of 1in
cm
Centimeter
37.795px
Physical unit; 1cm = 96px / 2.54
mm
Millimeter
3.7795px
Physical unit; 1mm = 1cm / 10
in
Inch
96px
Physical 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.
px
rem
pt
Usage typique
10
0.625
7.5
Small caption text
12
0.75
9
Body text (compact)
14
0.875
10.5
Default body text
16
1
12
Root font-size (browser default)
18
1.125
13.5
Large body text
20
1.25
15
H4 heading
24
1.5
18
H3 heading
32
2
24
H2 heading
48
3
36
H1 heading
64
4
48
Display / 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
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.