Une question fréquemment posée dans la conception de sites Web est "comment définir la hauteur d'un élément sur 100%"?
Cela peut sembler une réponse facile. Vous utilisez simplement CSS pour définir la hauteur d’un élément sur 100%, mais cela n’étire pas toujours cet élément pour s’adapter à la totalité de la fenêtre du navigateur. Voyons pourquoi cela se produit et ce que vous pouvez faire pour obtenir ce style visuel.
Pixels et pourcentages
Lorsque vous définissez la hauteur d'un élément à l'aide de la propriété CSS et d'une valeur utilisant des pixels, cet élément occupe beaucoup d'espace vertical dans le navigateur. Par exemple, un paragraphe avec un
hauteur: 100px;
occupera 100 pixels d’espace vertical dans votre conception. Peu importe la taille de la fenêtre de votre navigateur, cet élément aura une hauteur de 100 pixels. Les pourcentages fonctionnent différemment des pixels. Selon la spécification W3C, les hauteurs en pourcentage sont calculées par rapport à la hauteur du conteneur. Donc, si vous mettez un paragraphe avec un hauteur: 50%;
dans un div de hauteur 100px, le paragraphe aura une hauteur de 50 pixels, soit 50% de son élément parent. Si vous concevez une page Web et que vous souhaitez occuper toute la hauteur de la fenêtre dans une colonne, l'inclination naturelle est d'ajouter un hauteur: 100%;
à cet élément. Après tout, si vous définissez la largeur
à largeur: 100%;
l'élément prendra tout l'espace horizontal de la page, donc la taille
devrait fonctionner le même, non? Malheureusement, ce n'est pas le cas du tout. Pour comprendre pourquoi cela se produit, vous devez comprendre comment les navigateurs interprètent hauteur et largeur. Les navigateurs Web calculent la largeur totale disponible en fonction de la largeur de la fenêtre du navigateur. largeur
Si vous ne définissez aucune valeur dans vos documents, le navigateur en transmettra automatiquement le contenu afin de remplir toute la largeur de la fenêtre (largeur par défaut: 100%). La valeur de la hauteur est calculée différemment de la largeur. En fait, les navigateurs n'évaluent pas la hauteur si le contenu est trop long pour sortir de la fenêtre d'affichage (ce qui nécessite des barres de défilement) ou si le concepteur Web définit un absolu pour un élément de la page. la taille
Sinon, le navigateur laisse simplement le contenu s'écouler dans la largeur de la fenêtre d'affichage jusqu'à la fin. La hauteur n'est pas réellement calculée du tout. Des problèmes surviennent lorsque vous définissez un pourcentage en hauteur sur un élément comportant des éléments parents sans hauteur définie. En d'autres termes, les éléments parents ont une valeur par défaut. hauteur: auto;
En réalité, vous demandez au navigateur de calculer une hauteur à partir d’une valeur indéfinie. Comme cela équivaut à une valeur nulle, le navigateur ne fait rien. Si vous souhaitez définir une hauteur en pourcentage sur vos pages Web, vous devez définir la hauteur de chaque élément parent de celui que vous souhaitez définir comme hauteur. En d'autres termes, si vous avez une page comme celle-ci: Contenu ici
Vous voulez probablement le div
et le paragraphe en elle d'avoir une hauteur de 100%, mais cette div a en fait deux éléments parents: et. Afin de définir la hauteur de la div
à une hauteur relative, vous devez définir la hauteur du corps
et html
éléments aussi bien. Vous devez donc utiliser CSS pour définir la hauteur non seulement de la div, mais également du corps et des éléments HTML. Cela peut être un défi, car vous pouvez rapidement être submergé par tout ce qui est réglé à 100% de la hauteur, uniquement pour obtenir cet effet souhaité. Maintenant que vous savez comment régler la hauteur de vos éléments de page à 100%, il peut être intéressant de le faire et de le faire pour toutes vos pages, mais vous devez prendre en compte quelques éléments: Pour résoudre ce problème, vous pouvez également définir la hauteur de l'élément. Si vous le définissez à auto,
Les barres de défilement apparaissent si elles sont nécessaires mais disparaissent quand elles ne le sont pasCela corrige la coupure visuelle, mais cela ajoute des barres de défilement là où vous ne les voudrez peut-être pas. Une autre façon de relever ce défi consiste à expérimenter avec les unités CSS Viewport. En utilisant l'unité de mesure de hauteur de la fenêtre d'affichage, vous pouvez dimensionner les éléments pour qu'ils occupent une hauteur définie de la fenêtre d'affichage. Cela changera à mesure que la fenêtre d'affichage change! C’est un excellent moyen d’obtenir vos effets visuels 100% en hauteur sur une page tout en les laissant flexibles pour différents appareils et tailles d’écran. Pourquoi les hauteurs en pourcentage échouent
Quelques points à noter lorsque vous travaillez avec 100% d'altitude
Utilisation des unités de fenêtre