以下是我试图实现的目标:

我需要一个按钮,它位于距离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上的水平线设置leftright,而是使用两个包装div来设置水平位置.如果div.inflow是固定宽度,则需要div.positioner,因为div.fixed的左边距可以设置为容器的已知宽度.然而,如果你希望容器有一定的宽度,那么你需要div.positionerdiv.fixed推到div.inflow的右边.

作为一个有趣的附注,当我在div.inflow上设置overflow: hidden(如果有人需要这样做)时,固定位置div上的no effect在其他人的边界之外.显然,固定位置足以将其从overflow的包含div的上下文中删除.

Css相关问答推荐

隐藏div后缺少div的InnerHTML

如何将下拉面板放置在MAT-SELECT文本框的正下方

CSS媒体查询不显示所需的输出

CSS Grid我不想要的东西

排除特定元素的目标元素

当您到达页面底部时,如何使页脚 div 将附加的 div 向上推

Tailwind CSS 隐藏和可见

如何为以下布局安排网格?

如何在不使用 !important 的情况下提高优先级?

全部:初始与使用 CSS 重置

当我进入登录页面时,它处于桌面模式(响应式设计消失)

如何倾斜元素但保持文本正常(未倾斜)

最大宽度与最小宽度

如何在 javascript 中获取 HTML 元素的样式值?

在 CSS 中表示 100% 的 1/3 的最佳方式是什么?

使用没有设置宽度或高度的边界半径的胶囊形状?

是否可以在 CSS 中定义常量?

为什么容器 div 坚持比 IMG 或 SVG 内容略大?

如何实现最大字体大小?

html元素(div)的全高,包括边框,填充和边距?