Viewport
Le terme "viewport" se réfère à la zone visible d'une page web sur l'écran de l'utilisateur. C'est la partie de la page qui est actuellement visible sans avoir à faire défiler la page. La taille et les dimensions du viewport varient selon l'appareil utilisé pour accéder au site web, comme un ordinateur de bureau, une tablette ou un smartphone. L'origine du concept de viewport dans le développement web est étroitement liée à l'évolution d'Internet et à l'essor des appareils mobiles.
Origine
Le viewport a été introduit par Apple pour son navigateur mobile Safari afin de gérer la mise en page sur les appareils mobiles. Cette invention faisait partie des efforts d'Apple pour améliorer l'expérience de navigation web sur les iPhones, lancés pour la première fois en 2007.
Avant l'introduction du viewport, les pages web étaient généralement conçues pour les moniteurs de bureau, et les navigateurs mobiles affichaient souvent ces pages comme des versions réduites, obligeant les utilisateurs à zoomer pour lire le contenu.
Ce concept a été rapidement adopté par d'autres navigateurs mobiles et est devenu une pratique standard dans le Responsive Web Design.
Note
Les navigateurs web appliquent un viewport par défaut si celui-ci n'est pas défini dans le code HTML. En général, ils utilisent une taille suffisamment grande pour afficher l'intégralité du site web, souvent avec un niveau de zoom réduit pour adapter les sites conçus pour des écrans plus larges, comme ceux des ordinateurs de bureau, aux écrans plus petits des appareils mobiles.
A gauche sans viewport, à droite avec viewport.
Balise meta viewport
La balise <meta>
viewport est un élément HTML utilisé pour activer et contrôler le viewport. Cette balise permet aux développeurs web de spécifier comment une page web doit s'adapter aux différentes tailles d'écran, en particulier sur les appareils mobiles, pour assurer une expérience utilisateur optimale.
Emplacement : La balise est placée dans la section <head>
du document HTML.
<meta content="width=device-width, initial-scale=1" name="viewport">
Attributs principaux
width
: Cet attribut contrôle la largeur du viewport. Quand il est réglé surdevice-width
, la largeur du viewport correspond à la largeur de l'écran de l'appareil. Cela aide à s'assurer que le contenu est dimensionné correctement dès le départ.initial-scale
: Cet attribut définit le niveau de zoom initial de la page lorsqu'elle est chargée. Uninitial-scale
de1
signifie qu'il n'y a pas de zoom lors du chargement de la page, ce qui est idéal pour une conception responsive.
Fonctionnement
- Lorsque le navigateur charge la page, il examine la balise
<meta>
viewport et ajuste la mise en page en fonction de ses paramètres. - Si
width
est réglé surdevice-width
, le contenu de la page est dimensionné pour s'adapter à la largeur de l'écran, évitant ainsi aux utilisateurs de devoir zoomer pour lire ou interagir avec le contenu. - L'
initial-scale
de1
garantit que la page s'affiche à une échelle appropriée pour l'appareil, améliorant l'expérience utilisateur sur les petits écrans.
Unités de mesure
Dans le développement web, il existe plusieurs unités de mesure relatives au viewport, qui sont particulièrement utiles pour créer des designs responsive.
vw
(Viewport Width)
100vw
est égal à100%
de la largeur du viewport.- Cette unité est utilisée pour définir des tailles de manière proportionnelle à la largeur de la fenêtre d'affichage. Par exemple, si vous réglez la largeur d'un élément à
50vw
, cet élément occupera toujours50%
de la largeur du viewport, peu importe la taille de la fenêtre.
vh
(Viewport Height)
100vh
est égal à100%
de la hauteur du viewport.- Semblable à
vw
, mais basé sur la hauteur du viewport. Si un élément a une hauteur de50vh
, il occupera50%
de la hauteur du viewport.
vmin
(Viewport Minimum)
100vmin
correspond à100%
de la dimension la plus petite du viewport, que ce soit la largeur ou la hauteur.- Utile pour s'assurer que le contenu reste visible et proportionnel dans des viewports où la hauteur et la largeur diffèrent considérablement. Par exemple,
10vmin
utilisera10%
de la dimension la plus petite du viewport, soit la largeur ou la hauteur.
vmax
(Viewport Maximum)
100vmax
correspond à100%
de la dimension la plus grande du viewport.- Semblable à
vmin
, mais se base sur la dimension la plus grande du viewport. Cette unité est moins couramment utilisée quevmin
.
Tip
L'utilisation de vh
(viewport height) et vw
(viewport width) plutôt que des pourcentages est une question de contexte et d'objectif de conception. Les unités vh
et vw
sont toujours une proportion de la taille du viewport (la fenêtre d'affichage du navigateur), indépendamment de tout élément parent. En revanche, les pourcentages sont relatifs à la taille de l'élément parent. Si vous définissez une largeur en pourcentage, elle sera calculée en fonction de la largeur de l'élément conteneur.