Assurez - <body> remplir tout l'écran?
Je suis en utilisant un dégradé radial comme arrière-plan sur ma page, comme ceci:
background-image: -webkit-gradient(radial, 100% 100%, 10, 90% 90%, 600, from(#ccc), to(#000));
Il fonctionne, mais quand le contenu n'est pas de remplir la page entière le gradient est coupée. Comment puis-je faire la <body>
élément de remplir la totalité de la page, toujours?
- Et
body { width: 100%; height: 100%; }
ne fonctionne pas? - Que peu de css est appliqué à la balise body droite? Il fonctionne très bien pour moi la mise à jour de Chrome jsfiddle.net/kdjFD/embedded/result . Quel navigateur êtes-vous tester?
- Non,
body { width: 100%; height: 100%; }
ne fonctionne pas. Je suppose que je dois l'appliquer à<html>
trop. - Ne pas utiliser le vieux -webkit - syntaxe. Utiliser la langue officielle du W3C syntaxe
- Cette question a été posée il y a trois ans, quand il n'y a pas de prise en charge du navigateur pour que.
- connexes: stackoverflow.com/a/48503609/8620333 .. assez vieux comme question, mais je ne vois pas vraiment une réponse expliquant le contexte de propagation de l'astuce et pourquoi vous avez seulement besoin
html{height:100%}
Vous devez vous connecter pour publier un commentaire.
html { height: 100%; }
en fait.html { height: 100%; }
nibody { height: 100%; }
était assez pour moi (Opéra inclus comme un test) Ce qui fonctionnait le mieux étaithtml, body { min-height: 100%; }
à l'Aide de la hauteur au lieu de min-height gauche mon fond blanc w/o la couleur d'arrière-plan appliqué lorsque j'ai développé certains pliable divs dans le milieu de ma page.min-height
fixe qui.100%
à100vh
.Sur notre site, nous avons des pages où le contenu est statique, et les pages où il est chargé en AJAX. Sur une page (une page de recherche), il y avait des cas où l'AJAX résultats plus que le remplissage de la page, et les cas où il ne reviendrait pas de résultats. Pour que l'image d'arrière-plan pour le remplissage de la page dans tous les cas, nous avons dû appliquer le code CSS suivant:
height
pour lahtml
etmin-height
pour labody
.width: 100%;
.margin: 0;
est suffisant, pas besoin de spécifier l'unité dans lequel vous utilisez zéro deComme aucune des autres réponses ont travaillé pour moi, j'ai décidé de poster cela comme une réponse pour les autres à la recherche d'une solution qui a également constaté le même problème. À la fois le html et le corps doivent être définies avec
min-height
ou le dégradé ne serait pas remplir la hauteur du corps.J'ai trouvé Stephen P commentaire à donner la bonne réponse à cette question.
Quand j'ai le html (ou le html et le corps) de la hauteur à 100%,
height: 100vh
?J'ai eu à l'appliquer à 100% pour le html et le corps.
Essayez d'utiliser viewport (vh, vm) unités de mesure au niveau du corps
html, body { margin: 0; padding: 0; }
body { min-height: 100vh; }
Utilisation vh unités pour les marges horizontales, des remplissages et des frontières sur le corps et le soustraire de la min-hauteur de la valeur.
J'ai eu bizarre résultats à l'aide de vh,vm unités sur les éléments à l'intérieur du corps, en particulier lors de la re-dimensionnement.
Je pense en grande partie sur la bonne voie, est de mettre le css pour cela:
J'ai essayé toutes les solutions ci-dessus et je ne suis pas discréditer l'un d'eux, mais dans mon cas, ils n'ont pas de travail.
Pour moi, le problème a été causé parce que le
<header>
balise a unmargin-top
de 5em et la<footer>
avait une marge en bas de 5em. Je les ai retirées et au lieu de mettre quelquespadding
(en haut et en bas, respectivement). Je ne suis pas sûr si le remplacement de la marge a été un idéal de résoudre le problème, mais le point est que, si le premier et le dernier éléments dans votre<body>
a certaines marges, vous pouvez les considérer et de les supprimer.Mon
html
etbody
tags avait les styles suivantsSi vous ont d'une frontière ou d'un rembourrage, puis le solution
CSS:
produit de l'imparfait rendu
À obtenir ce droit dans la présence d'une bordure ou d'un rembourrage
utiliser à la place
CSS:
comme Martin souligné, bien que
overflow: hidden
n'est pas nécessaire.(2018 - testé avec Chrome 69 et IE 11)
body
tag. Sans cette frontière, labody
remplira exactement 100% de la fenêtre d'affichage, vous pouvez le voir avec une couleur de fond par exemple. La bonne réponse à cette question a été accepté il y a 7 ans est toujours valide.Cela fonctionne pour moi: