Le Device Pixel Ratio expliqué simplement
Le Device Pixel Ratio (DPR) est une notion qui affecte directement la qualité visuelle et les performances de vos sites web sur différents appareils. Cet article vous explique ce qu'est le DPR, pourquoi il compte, et comment en tenir compte dans vos projets.
Qu'est-ce que le Device Pixel Ratio ?
Le DPR (le ratio de pixels de votre écran) est le rapport entre les pixels physiques (les vrais points lumineux de l'écran) et les pixels CSS (les pixels logiques utilisés en développement web). Le calcul est simple :
Device Pixel Ratio = Pixels physiques / Pixels CSS
Par exemple, si un appareil a un DPR de 2, cela veut dire qu'il y a 2×2 (soit 4) pixels physiques pour chaque pixel CSS.
L'évolution des écrans haute densité
Les écrans haute densité ont commencé à se répandre avec les écrans "Retina" d'Apple en 2010. Depuis, les écrans à DPR élevé sont devenus la norme sur la plupart des appareils :
| Type d'appareil | DPR courant |
|---|---|
| Téléphones entrée de gamme | 1,5 - 2,0 |
| Téléphones haut de gamme | 2,5 - 4,0 |
| Tablettes | 2,0 - 3,0 |
| Portables/Desktops | 1,0 - 2,0 |
| Moniteurs 4K | 1,5 - 2,0 |
Pourquoi le DPR compte pour les développeurs web
Comprendre le DPR est important pour plusieurs raisons :
- Qualité des images : Les images basse résolution apparaissent floues sur les écrans à DPR élevé
- Performance : Servir des images trop lourdes gaspille de la bande passante
- Rendu du texte : Le texte est plus net sur les écrans à DPR élevé
- Précision CSS : Les layouts sub-pixel se comportent différemment selon le DPR
- Canvas et SVG : Ces éléments s'affichent différemment selon le DPR
Comment détecter le Device Pixel Ratio
Vous pouvez détecter le DPR d'un appareil avec JavaScript :
const dpr = window.devicePixelRatio;
console.log(`Le device pixel ratio de votre appareil est : ${dpr}`);
Ou vérifiez-le directement avec notre outil Screen Size Checker, qui affiche le DPR avec les autres infos de votre appareil.
Optimiser les images pour différents DPR
Pour servir la bonne image selon le DPR de chaque appareil, voici les techniques à utiliser :
1. Media queries de résolution CSS
/* Image par défaut pour les écrans standard */
.my-image {
background-image: url('image.png');
}
/* Image haute résolution pour les écrans à DPR élevé */
@media (-webkit-min-device-pixel-ratio: 2),
(min-resolution: 192dpi) {
.my-image {
background-image: url('[email protected]');
}
}
2. L'attribut HTML srcset
<img src="image.png"
srcset="image.png 1x,
[email protected] 2x,
[email protected] 3x"
alt="Exemple d'image responsive">
3. L'élément Picture
<picture>
<source media="(min-resolution: 3dppx)" srcset="[email protected]">
<source media="(min-resolution: 2dppx)" srcset="[email protected]">
<img src="image.png" alt="Exemple d'image responsive">
</picture>
Canvas et DPR
Quand vous travaillez avec des éléments Canvas HTML, vous devez ajuster le DPR pour un rendu net :
const canvas = document.getElementById('myCanvas');
const ctx = canvas.getContext('2d');
const dpr = window.devicePixelRatio || 1;
// Ajuster les dimensions du canvas
canvas.width = canvas.clientWidth * dpr;
canvas.height = canvas.clientHeight * dpr;
// Mettre à l'échelle le contexte
ctx.scale(dpr, dpr);
// Dessinez sur le canvas comme d'habitude
Pièges courants et solutions
- Texte flou : Vérifiez que vous ne redimensionnez pas les éléments texte avec des transforms sur les appareils à DPR élevé
- Éléments d'interface flous : Utilisez du SVG autant que possible pour les éléments d'interface
- Problèmes de performance : Mettez en place le lazy loading pour les images haute résolution
- Rendu incohérent : Testez sur des écrans avec différents DPR pendant le développement
- Bande passante : Utilisez les techniques d'images responsive pour servir les bons fichiers
Conclusion
Le Device Pixel Ratio a un impact direct sur l'apparence de votre site web sur différents appareils. En comprenant le DPR et en utilisant les techniques responsive adaptées, vous pouvez vous assurer que vos sites sont nets et professionnels tout en gardant de bonnes performances.
N'oubliez pas que l'optimisation pour différents DPR ne concerne pas que la qualité d'image — c'est trouver le bon équilibre entre qualité visuelle et performance pour chaque appareil.
Pour en savoir plus sur la création de sites responsive qui rendent bien sur tous les appareils, consultez nos autres articles sur les Bases du Viewport et nos guides par appareil comme Tailles de viewport iPhone et Tailles de viewport Android.