css - 将 div 固定在居中的 div 旁边

标签 css css-position

我有一个网页,其中有可滚动的内容。此内容包含在#content 中,位于页面的中央。 现在我希望导航栏显示在内容左侧 50px 处。这个栏应该有一个固定的位置(不应该滚动)。

这是我目前尝试过的:

#nav {
position: fixed;
top: 50%;
margin-top:-200px;
left:15%;
background: #FFF;
width: 100px;
height:400px;
border-radius: 50px;
}


#content {
position: relative;
width: 800px;
margin: 0px auto;
padding-top: 100px;
}

这显然不是我想要的,因为现在导航距离屏幕左侧 15%。

这是一张图片来说明我想要实现的目标。 Paint example

最佳答案

有一个有点棘手的解决方案。具有 position: fixed 的元素总是相对于浏览器窗口(更多更少)。这意味着它将始终忽略其父尺寸和位置,即使设置了 position: relative 也是如此。 解决方案 根本不设置left

这是您需要做的: HTML

<div class="content">
  <div class="fake">
    <div class="nav"></div>
  </div>
  content
</div>

CSS

.fake {
  position: absolute;
  left: -50px;
  top: 0;
}
.nav {
  position: fixed;
  top: 50px;
  width: 40px;
  height: 100px;
  background: #c11;
}
.content {
  position: relative;
  width: 800px;
  height: 1000px;
  margin: 0px auto;
  background: #ccc;
}

Working example.

当然有些值只是为了展示。

关于css - 将 div 固定在居中的 div 旁边,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15647996/

相关文章:

css - 伪元素存在但不可见

javascript - 将 div 的背景图像缩放到固定宽度;自动缩放高度

CSS虚线边框渲染问题

html - 如何让位置 :absolute <div> expand, 好像包含一个长 <p>

html - 如何将文本放置在不同位置的不同图像上?

html - 将 facebook 图标与按钮中的文本对齐

javascript - 具有可折叠和不可折叠元素的导航栏

html - 定位在输入文本字段的顶部?

html - Firefox 忽略表格单元格中的绝对定位

html - 如何将图像固定到另一个图像 css