Die CSS-Spezifikation verlangt, dass position:fixed
mit dem Ansichtsfenster verankert werden, nicht mit dem enthaltenen positionierten Element.
Wenn Sie Ihre Koordinaten relativ zu einem übergeordneten Element angeben müssen, müssen Sie JavaScript verwenden, um zunächst die Position des übergeordneten Elements relativ zum Ansichtsfenster zu ermitteln und dann die Position des untergeordneten (festen) Elements entsprechend festzulegen.
ALTERNATIV : Einige Browser haben sticky
CSS-Unterstützung, die die Positionierung eines Elements sowohl innerhalb seines Containers als auch innerhalb des Viewports begrenzt. Gemäß der Commit-Nachricht:
sticky
... erzwingt, dass ein Element innerhalb des Schnittpunkts zwischen seiner Containerbox und dem Ansichtsfenster positioniert wird.
Ein klebrig positioniertes Element verhält sich wie position:relative (der Abstand ist reserviert), aber mit einem Versatz t Sticky-Position bestimmt wird. Geändert isInFlowPositioned() um relative und sticky.
Abhängig von Ihren Designzielen kann dieses Verhalten in einigen Fällen hilfreich sein. Es handelt sich derzeit um einen Arbeitsentwurf, der, abgesehen von Tabellenelementen, eine gute Unterstützung bietet. position: sticky
braucht noch eine -webkit
Präfix in Safari.
Voir caniuse für aktuelle Statistiken zur Browserunterstützung.