Ich versuche, ein div in einen beliebigen Teil des Körpers einzufügen und es position: absolute
relativ zum gesamten Dokument zu machen und nicht zu einem übergeordneten Element, das ein hat position: relative
.
html
css
css-position
Timothy Ruhle
quelle
quelle
<body>
Tags, nicht wahr?Antworten:
Sie müssen die
div
Außenseite desposition:relative
Elements und hinein platzierenbody
.quelle
position:fixed
undposition:absolute
haben nicht das gleiche Verhalten. Behoben ist relativ zum Ansichtsfenster (nicht zum Dokument) und bewirkt, dass das Element auch nach dem Scrollen immer sichtbar ist, was möglicherweise zu Überlappungen usw. führt. Ich verstehe, dass es gültige Gründe für die HTML-Struktur geben kann, aber da es sich bei der Frage speziell um HTML und handelt CSS, meine Antwort ist richtig. Die einzige Möglichkeit ohne JS, es relativ zum Dokument zu machen, besteht darin, es aus demposition:relative
Element zu verschieben.Du suchst
position: fixed
.Von MDN :
quelle
Meine Lösung bestand darin, jQuery zu verwenden, um das div außerhalb seines übergeordneten Elements zu verschieben:
quelle
Wenn Sie das Element nicht anhängen möchten,
body
funktioniert die folgende Lösung.Ich kam zu dieser Frage und suchte nach einer Lösung, die funktionieren würde, ohne das div an den Body anzuhängen, da ich ein Mouseover-Skript hatte, das ich ausführen wollte, wenn sich die Maus sowohl über dem neuen Element als auch über dem Element befand, aus dem es hervorging. Solange Sie bereit sind, jQuery zu verwenden, und inspiriert von der Antwort von @Liam William:
Diese Lösung subtrahiert die aktuelle linke und obere Position des Elements (relativ zum Körper), um das Element auf 0, 0 zu verschieben. Das Platzieren des Elements an der gewünschten Stelle relativ zum Körper ist dann so einfach wie das Hinzufügen eines linken und oberen Versatzes Wert.
quelle
Dies ist nicht einfach mit CSS und HTML möglich.
Mit Javascript / jQuery können Sie die Elemente möglicherweise
jQuery.offset()
in das DOM übertragen und vergleichen, umjQuery.position()
zu berechnen, wo sie auf der Seite erscheinen sollen.quelle
jQuery.offset({ left: 0 })
für den Sieg!