html - 如何使元素与固定子元素的宽度一样宽?

标签 html css

我有两个兄弟元素 (navBarcontent),其中最左边的元素 (navBar) 应该根据其子元素调整其宽度(菜单)。
但是,菜单 需要固定:它的宽度可以改变,因此内容元素也需要动态改变。

问题是,当菜单 固定后,它不再处于文档流中。发生这种情况时,navBar 的宽度会缩小,这会导致内容元素的宽度增加。

那么如何才能让 navBar 在不手动设置宽度的情况下识别其固定子元素的宽度?

.menu {
  position: fixed;
}
<div class="container">
  <div class="navBar">
    <div class="menu"></div>
  </div>
  <div class="content"></div>
</div>

enter image description here

最佳答案

也许固定定位并不是您真正需要的。 position:sticky 可能更适合您。

  .container {
  margin: 1em auto;
  border: 1px solid green;
  height: 2000px;
  display: flex;
}

.navbar {
  padding: 1em;
  margin-right: 1em;
  background: lightblue;
}

.navbar nav {
  background: pink;
  position: sticky;
  top: 1em;
}

.content {
  background: rebeccapurple;
  flex: 1;
}

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

 ::before,
 ::after {
  box-sizing: inherit;
}

ul {
  list-style: none;
<div class="container">
  <div class="navbar">
    <nav>
      <ul>
        <li>Item 1</li>
        <li>Item 2</li>
        <li>Item 3</li>
        <li>Item 4</li>
        <li>Item 50000</li>
      </ul>
    </nav>
  </div>
  <div class="content"></div>
</div>

关于html - 如何使元素与固定子元素的宽度一样宽?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51269422/

相关文章:

html - 将鼠标悬停在导航链接上时如何删除空格?

javascript - 如何学习 DOM API/DOM API 的哪些部分需要学习?

html - 如何使复选框旁边的文本垂直居中对齐?

css - 2 个 div,并排占用 100% 的空间

javascript - 返回给定时间的鼠标位置

javascript - 如何使用纯javascript在静态页面中制作无限页面滚动效果

html - 为什么 anchor 标签不继承其父标签的颜色?

jquery - 内容周围的边框在移动设备上未对齐

javascript - 垂直滚动不起作用

html - 如何在 Safari 浏览器中显示 Angular Material 垫选择中的滚动条?