我实现了一个具有固定位置(wiewport)但相对于其父级宽度的元素。
我只需要包装我的固定元素,并给父母一个宽度100%。同时,包装的固定元素和父元素位于一个div中,该宽度根据包含网站内容的页面而变化。通过这种方法,我可以使固定元素始终位于内容的相同距离处,具体取决于该元素的宽度。在我的情况下,这是一个“到顶部”按钮,始终显示在距底部15像素和距内容15像素的位置。
https://codepen.io/rafaqf/pen/MNqWKB
<div class="body">
<div class="content">
<p>Some content...</p>
<div class="top-wrapper">
<a class="top">Top</a>
</div>
</div>
</div>
.content {
width: 600px; /*change this width to play with the top element*/
background-color: wheat;
height: 9999px;
margin: auto;
padding: 20px;
}
.top-wrapper {
width: 100%;
display: flex;
justify-content: flex-end;
z-index: 9;
.top {
display: flex;
align-items: center;
justify-content: center;
width: 60px;
height: 60px;
border-radius: 100%;
background-color: yellowgreen;
position: fixed;
bottom: 20px;
margin-left: 100px;
cursor: pointer;
&:hover {
opacity: .6;
}
}
}