Zwei HTML-Elemente und reines CSS (moderne Browser)
Siehe dieses jsFiddle-Beispiel. Ändern Sie die Größe und sehen Sie, wie sich die festen Elemente sogar mit den schwebenden Elementen bewegen, in denen sie sich befinden. Verwenden Sie die innerste Bildlaufleiste, um zu sehen, wie der Bildlauf auf einer Website funktionieren würde (feste Elemente bleiben fest).
Wie viele hier bereits festgestellt haben, besteht ein Schlüssel darin, keine Positionseinstellungen an der Maschine vorzunehmen. fixed
Element (kein top
, right
, bottom
, oder left
Werte).
Stattdessen setzen wir alle festen Elemente (beachten Sie, dass das letzte Feld vier davon hat) zuerst in das Feld, von dem aus sie positioniert werden sollen, etwa so:
<div class="reference">
<div class="fixed">Test</div>
Some other content in.
</div>
Dann verwenden wir margin-top
y margin-left
um sie im Verhältnis zu ihrem Container zu "verschieben", so wie es dieses CSS tut:
.fixed {
position: fixed;
margin-top: 200px; /* Push/pull it up/down */
margin-left: 200px; /* Push/pull it right/left */
}
Beachten Sie, dass fixed
Elemente ignorieren alle anderen Layoutelemente, der endgültige Container in unserer Geige können mehrere fixed
Elemente und trotzdem alle Elemente, die sich auf die linke obere Ecke beziehen. Dies gilt jedoch nur, wenn sie alle zuerst im Container platziert werden, wie dieser Vergleich zeigt, wird die Positionierung unzuverlässig, wenn sie im Containerinhalt verstreut ist .
Ob der Wrapper statisch , relativ , oder absolut bei der Positionierung spielt es keine Rolle.