Ich weiß, dies ist super alt, aber nach nicht finden die (reine CSS) Antwort, die ich suchte, kam ich mit dieser Lösung (teilweise abstrahiert von medium.com ) und dachte, es könnte anderen helfen, die dasselbe tun wollen.
Wenn Sie die Antworten von @DuckMaestro kombinieren, können Sie ein Element relativ zu einem Elternteil (eigentlich Großelternteil) fest positionieren. Verwenden Sie position: absolute;
um ein Element innerhalb eines übergeordneten Elements zu positionieren mit position: relative;
und dann position: fixed;
auf ein Element innerhalb des absolut positionierten Elements wie folgt:
HTML
<div class="relative">
<div class="absolute">
<a class="fixed-feedback">This element will be fixed</a>
</div>
</div>
CSS
.relative {
margin: 0 auto;
position: relative;
width: 300px;
}
.absolute {
position: absolute;
right: 0;
top: 0;
width: 50px;
}
.fixed-feedback {
position: fixed;
top: 120px;
width: 50px;
}
BEISPIEL
Wie @JonAdams sagte, ist die Definition von position: fixed
erfordert, dass das Element relativ zum Ansichtsfenster positioniert wird, aber Sie können den horizontalen Aspekt mit dieser Lösung umgehen.
Hinweis: Dies ist etwas anderes als das einfache Setzen eines right
o left
Wert für das fixierte Element, da es sich sonst bei einer Größenänderung des Fensters horizontal verschieben würde.