J'essaie de définir un div à un certain pourcentage de hauteur en CSS.
Pourcentage de quoi ?
Pour définir un pourcentage de hauteur, son élément parent(*) doit avoir une hauteur explicite. C'est assez évident, car si vous laissez la valeur de height comme auto
Mais si le contenu lui-même a une hauteur exprimée en termes de pourcentage du parent, vous vous retrouvez face à un dilemme. Le navigateur abandonne et utilise simplement la hauteur du contenu.
Ainsi, le parent du div doit avoir un explicite height
propriété. Bien que cette hauteur puisse également être un pourcentage si vous le souhaitez, cela ne fait que déplacer le problème à un niveau supérieur.
Si vous souhaitez que la hauteur de la division corresponde à un pourcentage de la hauteur de la fenêtre d'affichage, tous les ancêtres de la division, y compris les éléments suivants <html>
y <body>
, doivent avoir height: 100%
Il y a donc une chaîne de pourcentages de hauteur explicites jusqu'à la division.
(* : ou, si le div est positionné, le "bloc contenant", qui est l'ancêtre le plus proche à être également positionné).
Par ailleurs, tous les navigateurs modernes et IE>=9 prennent en charge les nouvelles unités CSS relatives à la hauteur de la fenêtre d'affichage ( vh
) et la largeur de la fenêtre ( vw
):
div {
height:100vh;
}
Voir ici pour plus d'infos .
3 votes
Voici une explication simple et claire de la CSS
height
avec des valeurs en pourcentage : stackoverflow.com/a/31728799/35972760 votes
Règle le problème du DOCTYPE : stackoverflow.com/a/32215263/3597276
0 votes
Jetez un coup d'œil à cet article qui donne une réponse basée sur les spécifications CSS : stackoverflow.com/a/31032477/247696