html - 导航位置 :fixed in right of the div

标签 html css

我想将导航放置在 div 的右侧,点缀有 position: fixed。如果您使用 right: 0 但来自 div。我能怎么做?这是代码:

<div style="width:800px; height:2000px; margin:0 auto; border:2px dotted #000;">
  <nav style="position:fixed;">
    <ul>
       <li>voce1</li>
       <li>voce2</li>
       <li>voce3</li>
       <li>voce4</li>
   </ul>
  </nav>
</div>

最佳答案

位置固定是相对于视口(viewport)窗口...所以固定的 div 是不可能相对于另一个元素定位的。

也就是说,如果“父”div 的宽度已知,则可以使用 calc 来确定固定 div 的位置。

div {
  width: 400px;
  height: 2000px;
  margin: 0 auto;
  border: 2px dotted #000;
}
nav {
  border: 1px solid red;
  position: fixed;
  right: calc(50% - 200px);
}
ul {
  list-style-type: none;
}
li {
  display: inline-block;
}
<div>
  <nav>
    <ul>
      <li>voce1</li>
      <li>voce2</li>
      <li>voce3</li>
      <li>voce4</li>
    </ul>
  </nav>
</div>

即使 div 具有百分比宽度也是如此

* {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}
div {
  width: 80%;
  height: 2000px;
  margin: 0 auto;
  border: 2px dotted #000;
}
nav {
  border: 1px solid red;
  position: fixed;
  right: calc(50% - 40%);
}
ul {
  list-style-type: none;
}
li {
  display: inline-block;
  padding: 1rem;
}
<div style="">
  <nav style="">
    <ul>
      <li>voce1</li>
      <li>voce2</li>
      <li>voce3</li>
      <li>voce4</li>
    </ul>
  </nav>
</div>

注意 calc 支持 IE9+

关于html - 导航位置 :fixed in right of the div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29127488/

相关文章:

html - 如何使用百分比调整嵌入的 html 对象的高度?

javascript - 将结果输出到 div #results

javascript - 如何多次添加/删除类?

css - 如何使用 CSS 在鼠标悬停时向图像添加工具提示

google-chrome - 你能找到这个 html/css 代码中的错误吗?

javascript - 无法在直播网站中播放 youtube 视频

javascript - ASP.NET MVC5 Bootstrap Popover 字符串,单引号内有双引号

html - 切换 div 的显示会导致溢出 :scroll

javascript - 连续几个div,自动父宽度

javascript - 如何根据不同的设备使用悬停和单击?