我目前正在开发一种通过Web组件嵌入到不同网站的表单. 当表单被发送并且API返回错误时,一个弹出/modal/alert应该显示在页面顶部水平居中.因为你可以滚动的形式和错误应该总是可见的,我想定位它固定.但是,这将其固定到视口.由于我对表单嵌入的位置没有任何影响,所以我想将其固定到表单本身,而不是出现在网站上的"某个地方".
我发现你可以通过相对地定位容器并使用margin—top而不是top来做到这一点,这适用于绝对值,但不适用于50%.我假设它使用了50%的视口宽度,而不是容器的宽度,因为它确实远离中心. 以下是我try 过的一个例子:
.container {
width: 400px;
height: 5000px;
background-color: lightblue;
position: relative;
width: min(100%, 300px);
margin: auto 200px;
}
.child {
background-color: blue;
position: fixed;
margin-top: 3rem;
margin-left: 50%;
}
<div class="container">
<div class="child">test</div>
</div>
https://codepen.io/Nils-B-/pen/ZEZLMZm
有没有什么方法可以在css中真正做到这一点,或者我需要js来将它完全放在scroll上?