CSS utilisant un problème de positionnement relatif négatif

j'ai un en-tête, mainbody et pied de page. L'en-tête et le corps principal sont bien coiffés. Maintenant pour le pied de page je veux le faire apparaître derrière mainbody, donc j'ai utilisé:

z-index: -1;
position: relative;
top: -60px;

cela donne le résultat désiré, mais j'obtiens un espace supplémentaire de 60px en bas.

Comment puis-je libérer cet espace supplémentaire?

17
demandé sur Paul D. Waite 2010-02-17 15:42:50

6 réponses

Paul a raison. margin-top: -60px; au lieu de top: -60px;. Une autre solution possible serait de définir la "mainbody"position: relative; utiliser position: absolute; bottom: 60px; sur le pied de page - bien que cela signifie que le pied de page doit être déplacé à l'intérieur de "mainbody". bien que tant que le parent du pied de page coule avec "mainbody" vous pouvez utiliser ce même truc sur cet élément à la place.

25
répondu prodigitalson 2010-02-17 13:25:31

l'espace "supplémentaire" en bas est l'espace que prendrait le pied de page. Les éléments relativement positionnés occupent toujours le même espace dans le flux de mise en page de la page, même s'ils apparaissent ailleurs.

Vous pouvez essayer une marge de fond négative sur votre corps principal. Vous pouvez trouver cela signifie que vous n'avez pas besoin d' top: -60px; sur votre pied de page.

6
répondu Paul D. Waite 2010-02-17 13:00:26

Vous pouvez toujours utiliser:

position: relative;
top: -60px;

pour la section dont vous avez besoin mais

margin-top: -60px;

à la section qui apparaît ensuite. Dans ce cas - pied de page.

3
répondu Mike Shema 2015-09-13 16:40:33

Un moyen d'y parvenir serait de mettre la div à l'intérieur de l'autre, absolute'ly positionné div de sorte qu'il est sorti du flux de documents.

1
répondu raveren 2010-02-17 12:45:55

Pas vraiment une réponse directe à votre question, mais en fonction de ce que vous souhaitez afficher derrière le contenu principal, vous pouvez peut-être tout simplement faux.

Si c'est une image, vous pouvez simplement le mettre dans html {} ou body {} (ou un div qui englobe tout le contenu) et d'aligner le bas.

1
répondu jeroen 2010-02-17 14:21:20

une autre solution est la suivante:

z-index: -1;
position: relative;
top: -60px;
margin-bottom: -60px;

le haut crée la marge supplémentaire et la marge-le bas la supprime

pour une raison quelconque pour h balise que cela a fonctionné pour moi. marge négative-dessus ne fonctionne pas

0
répondu Mantas Karanauskas 2016-09-14 11:01:25