Voici la solution que j'ai finalement trouvée lors de l'utilisation d'un div comme conteneur pour un arrière-plan dynamique.
- Retirer le
z-index
pour les utilisations non liées au fond.
- Supprimer
left
ouright
pour une colonne pleine hauteur.
- Supprimer
top
ou bottom
pour une ligne pleine largeur.
EDIT 1: CSS ci-dessous a été modifié car il ne s'affiche pas correctement dans FF et Chrome. déplacé position:relative
pour être sur le HTML et définir le corps au height:100%
lieu de min-height:100%
.
EDIT 2: Ajout de commentaires supplémentaires au CSS. Ajout de quelques instructions supplémentaires ci-dessus.
Le CSS:
html{
min-height:100%;/* make sure it is at least as tall as the viewport */
position:relative;
}
body{
height:100%; /* force the BODY element to match the height of the HTML element */
}
#cloud-container{
position:absolute;
top:0;
bottom:0;
left:0;
right:0;
overflow:hidden;
z-index:-1; /* Remove this line if it's not going to be a background! */
}
Le html:
<!doctype html>
<html>
<body>
<div id="cloud-container"></div>
</body>
</html>
Pourquoi?
html{min-height:100%;position:relative;}
Sans cela, le DIV du conteneur cloud est supprimé du contexte de mise en page du HTML. position: relative
garantit que le DIV reste à l'intérieur de la zone HTML lorsqu'il est dessiné, ce qui bottom:0
fait référence au bas de la zone HTML. Vous pouvez également l'utiliser height:100%
sur le cloud-container car il fait désormais référence à la hauteur de la balise HTML et non à la fenêtre d'affichage.
html
élément. Pourquoi donc?height
c'est dire que vous êtes si grand; Ni plus ni moins.' Ce qui signifie que ce sera la hauteur de la fenêtre. Nous voulons qu'elle soit au moins aussi haute que la fenêtre ou plus haute.min-height
le fait bien.<html>
et la position dans la fenêtre étaient deux choses distinctes. Je vous remercie!Avec HTML5, la façon la plus simple est simplement de le faire
height: 100vh
. Où «vh» représente la hauteur de la fenêtre d'affichage de la fenêtre du navigateur. Adapté au redimensionnement du navigateur et des appareils mobiles.la source
vw
.J'ai eu un problème similaire et la solution était de le faire:
Je voulais un div centré sur la page avec une hauteur de 100% de la hauteur de la page, donc ma solution totale était:
Vous devrez peut-être faire en sorte qu'un élément parent (ou simplement «corps») ait
position: relative;
la source
cloud-container
?Vous pouvez tricher en utilisant des fausses colonnes ou vous pouvez utiliser une astuce CSS
la source
C'est simple en utilisant une table:
Lorsque DIV a été introduit, les gens avaient tellement peur des tables que le pauvre DIV est devenu le marteau métaphorique.
la source
Utilisez la position absolue. Notez que ce n'est pas ainsi que nous sommes généralement habitués à utiliser la position absolue, ce qui nécessite de disposer manuellement les choses ou d'avoir des boîtes de dialogue flottantes. Cela s'étirera automatiquement lorsque vous redimensionnerez la fenêtre ou le contenu. Je crois que cela nécessite un mode standard mais fonctionnera dans IE6 et supérieur.
Remplacez simplement le div par l'id 'thecontent' par votre contenu (la hauteur spécifiée est juste pour l'illustration, vous n'avez pas besoin de spécifier une hauteur sur le contenu réel.
La façon dont cela fonctionne est que le div externe sert de point de référence pour la barre de navigation. Le div extérieur est étiré par le contenu du div «contenu». La barre de navigation utilise un positionnement absolu pour s'étirer jusqu'à la hauteur de son parent. Pour l'alignement horizontal, nous divisons le contenu par la même largeur de la barre de navigation.
Cela est rendu beaucoup plus facile avec le modèle de boîte flexible CSS3, mais ce n'est pas encore disponible dans IE et a certaines de ses propres bizarreries.
la source
J'ai rencontré le même problème que toi. Je voulais faire un
DIV
arrière-plan, pourquoi, parce que c'est facile à manipuler div via javascript. Quoi qu'il en soit, trois choses que j'ai faites dans le CSS pour cette div.CSS:
la source
Si vous ciblez des navigateurs plus modernes, la vie peut être très simple. essayer:
si vous en avez besoin à 50% de la page, remplacez 100 par 50.
la source
Je veux couvrir toute la page Web avant d'inviter une fenêtre contextuelle modale. J'ai essayé de nombreuses méthodes en utilisant CSS et Javascript, mais aucune d'entre elles ne m'aide jusqu'à ce que je trouve la solution suivante. Cela fonctionne pour moi, j'espère que cela vous aide aussi.
Bonne chance ;-)
la source
la source
la source
Simple, il suffit de l'envelopper dans un div de table ...
Le HTML:
Le CSS:
la source