Der Trick besteht darin, die Bildschirmbreite minus die Containerbreite zu nehmen und durch 2 zu dividieren:
//1400px is according to container max-width (left can be also right)
.fixed {
position: fixed;
right: calc((100vw - 1400px)/2);
}
Hinweis: Die Funktion css calc() wird zwar fast, aber nicht zu 100% unterstützt. Für die meisten Anwendungsfälle ist sie definitiv ausreichend unterstützt. Klicken Sie hier für weitere Einzelheiten
Snippet (mit einem 300px-Container, damit das Widget dieser Website hineinpasst):
.container {
max-width: 300px;
margin-left: auto;
margin-right: auto;
}
.fixed {
position: fixed;
right: calc((100vw - 300px)/2);
}
@media screen and (max-width: 300px) {
right: 0px;
}
<div style="height: 3000px">
<div class="container">
<button class="fixed">
FIXED CONTENT
</button>
Lorem ipsum dolor sit amet consectetur adipisicing elit. Laborum, eum? Animi quidem accusamus minima vel, dolorem suscipit quia accusantium minus harum modi commodi distinctio! Iste voluptatum earum quam voluptate culpa ad, ipsum dolorum recusandae quis atque eligendi necessitatibus magnam nisi dolores beatae qui? Perspiciatis natus cum nostrum in quod odio sapiente doloremque rerum quo dolore tenetur facere, quisquam atque accusamus fugiat eligendi, deleniti nisi minus recusandae distinctio dignissimos! Dicta quos ipsum qui pariatur at vel veritatis veniam quisquam minus modi et voluptas aliquam laborum, cumque in quo magnam sapiente. Expedita ut dolore laboriosam tempora reprehenderit vero eaque blanditiis, cumque voluptatibus, velit nemo, veniam tenetur quisquam numquam adipisci quae odio repellendus neque incidunt! Cum odio corporis soluta voluptate nesciunt, quasi nobis deleniti neque porro expedita fugiat placeat alias autem pariatur animi error, dicta veritatis atque perspiciatis inventore tempora dolor ad! Mollitia in dolorem ipsam eos porro magni perspiciatis possimus maiores, itaque facere ut. Eos culpa eum error quia incidunt repellendus quam possimus, asperiores earum ipsum molestias dicta sint fugit atque veniam dolorum illo? Officia harum sint incidunt totam, reiciendis illum eos maxime sequi neque repellat quis, expedita eum, corporis quaerat nemo qui soluta aspernatur animi. Sint ad rem numquam omnis sit.
</div>
</div>