以下是我试图实现的目标:
我需要一个按钮,它位于距离div右侧一定距离的位置,并且无论视口大小,它与div侧的距离始终相同,但会随窗口滚动.
因此,它始终位于div右侧的x像素,但始终位于视口顶部的y像素.
这可能吗?
以下是我试图实现的目标:
我需要一个按钮,它位于距离div右侧一定距离的位置,并且无论视口大小,它与div侧的距离始终相同,但会随窗口滚动.
因此,它始终位于div右侧的x像素,但始终位于视口顶部的y像素.
这可能吗?
(Disclaimer Note:The solution offered here在技术上并不像问题标题所说的那样是"absolute horizontally",但确实达到了OP最初想要的效果,固定位置元素与另一个元素的右边缘之间的距离是"X",但在其垂直卷轴中是固定的.)
我喜欢这些类型的CSS挑战.作为概念的证明,是的,you can get what you desire.您可能需要调整一些内容来满足您的需要,但是这里有一些通过了Firefox、IE8和IE7(当然,IE6没有position: fixed
)的示例html和css.
HTML:
<body>
<div class="inflow">
<div class="positioner"><!-- may not be needed: see notes below-->
<div class="fixed"></div>
</div>
</div>
</body>
CSS(用于演示的边框和所有尺寸):
div.inflow {
width: 200px;
height: 1000px;
border: 1px solid blue;
float: right;
position: relative;
margin-right: 100px;
}
div.positioner {position: absolute; right: 0;} /*may not be needed: see below*/
div.fixed {
width: 80px;
border: 1px solid red;
height: 100px;
position: fixed;
top: 60px;
margin-left: 15px;
}
The key根本不为div.fixed
上的水平线设置left
或right
,而是使用两个包装div来设置水平位置.如果div.inflow
是固定宽度,则需要div.positioner
,因为div.fixed
的左边距可以设置为容器的已知宽度.然而,如果你希望容器有一定的宽度,那么你需要div.positioner
把div.fixed
推到div.inflow
的右边.
作为一个有趣的附注,当我在div.inflow
上设置overflow: hidden
(如果有人需要这样做)时,固定位置div上的no effect在其他人的边界之外.显然,固定位置足以将其从overflow
的包含div的上下文中删除.