2009-04-24 4 views
1

dire que j'ai quelque chose commeComment puis-je m'assurer qu'une div position relative se développe pour contenir toutes les divs de position absolue?

<body><div id="a"><div id="b">some content</div></div>more content<body> 

et je ne sais pas combien de hauteur « un contenu » va être. Mais j'ai #b stylisé à la position: absolute et #a à la position: relative donc la position de # b est relative au coin supérieur gauche de #a. Y a-t-il un moyen de faire en sorte que #a se développe pour contenir #b et que "plus de contenu" soit poussé après?

merci

+0

La position de # b est relative à sa position d'origine et non à la position # a. C'est juste une coïncidence que les deux positions soient les mêmes. – Gumbo

Répondre

2

En remplaçant absolu par relatif peut obtenir ce que vous voulez, comme dans ce jsFiddle.

0

Non. Le positionnement absolu supprime des éléments du flux de documents. Leurs étiquettes parentales et jumelles n'ont aucun moyen de savoir qu'elles chevauchent un élément absolument positionné ou non.

1

Il semble que la position relative pour #b pourrait être une meilleure solution. Comme #b est le premier élément de #a, il apparaîtra naturellement dans le coin supérieur gauche de #a, de sorte que la position relative sera positionnée par rapport au même point que la position absolue.

, que vous voulez aussi pousser vers le bas par #B 30px, vous définissez

#b{position:relative;top:30px;margin-bottom:30px;} 

contenu effacera le fond de #B parce position: relative laisse un bloc dans le flux de contenu égale à la hauteur de #b + 30px;

2

Votre exemple est erroné car il n'y a aucun besoin réel d'avoir pos: abs sur div # b comme par défaut cet élément serait placé en haut/à gauche de div # a. Utiliser la position css prendra son élément appliqué en dehors du flux de balisage normal, même si vous deviez utiliser pos: rel sur div # b cela augmenterait seulement la hauteur de div # a il ne prendrait en compte aucun positionnement vous avez peut-être également appliqué à cela.

Il y a moyen de parvenir à ce que vous recherchez, mais cela dépend de l'utilisation de JavaScript.

Questions connexes