我使用下面的代码将此元素<div class="col-scroll-fixed"></div>
放在屏幕右侧。但它没有固定在屏幕上。我甚至尝试将!important
添加到每个CSS属性中,但无法获得我想要的结果。
.col-scroll-fixed{
width: 310px;
position: fixed;
top:0;
right: 30px;
bottom: 0;
z-index: 9999;
}
所以,我想知道相对于`position:fixed`会起作用。有没有人帮我解决这个问题。
答案 0 :(得分:2)
#outer {
transform: scale(1.5);
width: 100px;
height: 100px;
border: 1px solid blue;
}
#inner {
position: fixed;
top:0;
right:0;
width: 50px;
height: 50px;
border: 1px solid red;
}
&#13;
<div id="outer">
<div id="inner">Inner</div>
</div>
&#13;
也许是因为您将底部和顶部属性都设置为0.浏览器无法遵循这些属性。必须设置顶部或底部,但不能同时设置两者。
我还注意到,当元素位于另一个position: fixed;
或position: fixed;
元素中时,position: absolute;
并不总是有效,至少在Chrome中是这样。因此,您应该检查元素的父母,并确保它们都处于相对位置。
不幸的是,虽然我可以在我正在处理的项目中重现这一点,但我无法在一个片段中重现它。
您还要确保它没有float
应用于它或任何弹性箱父项,因为这些似乎都会覆盖固定的定位行为。
此外,请删除其上的所有transform
规则或其父母,因为这似乎会导致Chrome,Firefox,Opera和Edge出现问题。附加的代码段演示了此问题。
修改:根据规范,这是预期的行为,但如果您不了解它,肯定会让您失望。这里真正重要的是,元素父母中的一个可能会形成一个新的堆叠上下文,这会导致它与父元素而不是窗口对齐。
答案 1 :(得分:0)
position: fixed;
的元素相对于屏幕的视口定位,这意味着即使滚动页面,它也始终保持在同一位置。 top,right,bottom和left属性用于定位元素。打印时,元素将出现在每个页面上。
这是你的代码,我添加了背景颜色和高度,以便我们可以看到它。它是预期的地方。
.col-scroll-fixed {
width: 310px;
height: 30px;
background-color: purple;
position: fixed;
top:0;
right: 30px;
bottom: 0;
z-index: 9999;
}
<div class="col-scroll-fixed"></div>
答案 2 :(得分:-1)
使用
position: fixed
元素相对于浏览器窗口定位。 举个例子:
.className{
positon: fixed;
top: 0;
left: 0;
}
上面的CSS会将元素定位到屏幕的左上角。
这是CSS示例的小提琴:
完全正常。如果你想要&#34; div&#34;在屏幕的最右边。您需要使用
right: 0;
否则,如果还有其他问题,请告诉我。