css - 如何将一个 div 定位到另一个 div 并将顶部固定到 body?

标签 css css-position

我想在 div 左侧添加一个菜单,但相对于正文顶部是固定的。因此,当我滚动 div 时,左侧菜单会粘在屏幕上。

.container {
  position: relative;
  width: 70%;
  margin-right: auto;
  margin-left: auto;
  height: 1300px;
  background-color: grey;
}
.menu_fixed_left {
  position: absolute;
  left: -50px;
  width: 50px;
  margin-top: 100px;
  z-index: 2;
  background-color: silver;
}
ul {
  list-style-type: none;
  padding: 15px;
}
<body>
  <div class="container">
    <div class="menu_fixed_left">
      <ul>
        <li>A</li>
        <li>B</li>
        <li>C</li>
        <li>D</li>
      </ul>
    </div>
    Container
  </div>
</body>

这是 fiddle .

最佳答案

您必须执行以下步骤:

  • 首先,您必须将菜单显示为固定

  • 其次,要将其放置在 body 的顶部,您必须使用 top: 0(或者您可以将其更改为您想要的顶部以 body 标签为引用)。

  • 由于内容 div 占据了屏幕宽度的 70%,并且 margin: auto 这意味着它有 15%(30% 没有占据,并且每个都相同边,每边屏幕的 30%/2 = 15%),因此您必须使用 calc 来调整每边的 15%,也就是占据菜单的 50px。

  • 移除 body 标签的默认边距。

Updated JSFiddle .

关于css - 如何将一个 div 定位到另一个 div 并将顶部固定到 body?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37611740/

相关文章:

javascript - 显示 :none style not working

html - 透明 div 下方的可点击 div

javascript - CSS 图像变换相对于父级大小,而不是图像大小

html - 并排放置两个div,一个拉伸(stretch)以占用空间

javascript - 将焦点更改为溢出 :hidden contained element, 会移动它,但会导致这种差异不明显

css - 如何将比其父 div 宽的绝对元素 (img) 居中?

html - 水平滚动表头的位置粘性

html - 为什么绝对 parent 得到 child 的高度而相对 parent 没有?

css - 如何在 css 中将 "+"向右移动?

javascript - 带有图像描述的模态图像