html - 使用 calc() 容器将宽度设置为固定的 div

标签 html css css-position

我有三个 div:容器、父级和标题。固定位置的 header 应采用容器的宽度,如果容器具有固定宽度,它可以完美工作,但如果我使用 calc() 则什么也不会发生。

我在这里创建了一个例子https://jsfiddle.net/d34k53w1/5/

body {
  background: #ecf4f7;
}
.container {
  background: #fff;
  width: calc(100% - 280px);
  margin: 15px auto;
}
.parent {
  width: inherit;
  border-bottom: 2px solid #f2f2f2;
}
.header {
  width: inherit;
  height: 30px;
  position: fixed;
  background: #69abe3;
}
.content {
  padding: 20px;
}
<div class="container">
  <div class="parent">
    <div class="header">
      Lorem Ipsum
    </div>
  </div>
  <div class="content">
    <p>
      Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam in nulla libero. Phasellus quis eleifend urna. Curabitur mollis arcu nec quam venenatis, non luctus nibh ultricies. Proin at nisi vel mauris convallis tempor. Nam porttitor condimentum hendrerit.
      Phasellus quis velit arcu. Sed in porttitor velit. Mauris ut ante et nibh pellentesque sodales eu sed libero. Sed magna magna, sollicitudin non mattis eu, convallis nec lorem. Aenean metus velit, consequat quis tortor quis, volutpat ullamcorper
      erat. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Aliquam semper rhoncus lacus id tempor.
    </p>
    <p>
      Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam in nulla libero. Phasellus quis eleifend urna. Curabitur mollis arcu nec quam venenatis, non luctus nibh ultricies. Proin at nisi vel mauris convallis tempor. Nam porttitor condimentum hendrerit.
      Phasellus quis velit arcu. Sed in porttitor velit. Mauris ut ante et nibh pellentesque sodales eu sed libero. Sed magna magna, sollicitudin non mattis eu, convallis nec lorem. Aenean metus velit, consequat quis tortor quis, volutpat ullamcorper
      erat. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Aliquam semper rhoncus lacus id tempor.
    </p>
    <p>
      Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam in nulla libero. Phasellus quis eleifend urna. Curabitur mollis arcu nec quam venenatis, non luctus nibh ultricies. Proin at nisi vel mauris convallis tempor. Nam porttitor condimentum hendrerit.
      Phasellus quis velit arcu. Sed in porttitor velit. Mauris ut ante et nibh pellentesque sodales eu sed libero. Sed magna magna, sollicitudin non mattis eu, convallis nec lorem. Aenean metus velit, consequat quis tortor quis, volutpat ullamcorper
      erat. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Aliquam semper rhoncus lacus id tempor.
    </p>
    <p>
      Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam in nulla libero. Phasellus quis eleifend urna. Curabitur mollis arcu nec quam venenatis, non luctus nibh ultricies. Proin at nisi vel mauris convallis tempor. Nam porttitor condimentum hendrerit.
      Phasellus quis velit arcu. Sed in porttitor velit. Mauris ut ante et nibh pellentesque sodales eu sed libero. Sed magna magna, sollicitudin non mattis eu, convallis nec lorem. Aenean metus velit, consequat quis tortor quis, volutpat ullamcorper
      erat. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Aliquam semper rhoncus lacus id tempor.
    </p>
  </div>
</div>

PS:我不会用javascript。

最佳答案

尝试重置 body 标签的默认边距:

body {
  margin: 0;
}

body {
  background: #ecf4f7;
  margin: 0;
}
.container {
  background: #fff;
  width: calc(100% - 280px);
  margin: 15px auto;
}
.parent {
  width: inherit;
  border-bottom: 2px solid #f2f2f2;
}
.header {
  width: inherit;
  height: 30px;
  position: fixed;
  background: #69abe3;
}
.content {
  padding: 20px;
}
<div class="container">
  <div class="parent">
    <div class="header">
      Lorem Ipsum
    </div>
  </div>
  <div class="content">
    <p>
      Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam in nulla libero. Phasellus quis eleifend urna. Curabitur mollis arcu nec quam venenatis, non luctus nibh ultricies. Proin at nisi vel mauris convallis tempor. Nam porttitor condimentum hendrerit.
      Phasellus quis velit arcu. Sed in porttitor velit. Mauris ut ante et nibh pellentesque sodales eu sed libero. Sed magna magna, sollicitudin non mattis eu, convallis nec lorem. Aenean metus velit, consequat quis tortor quis, volutpat ullamcorper
      erat. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Aliquam semper rhoncus lacus id tempor.
    </p>
    <p>
      Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam in nulla libero. Phasellus quis eleifend urna. Curabitur mollis arcu nec quam venenatis, non luctus nibh ultricies. Proin at nisi vel mauris convallis tempor. Nam porttitor condimentum hendrerit.
      Phasellus quis velit arcu. Sed in porttitor velit. Mauris ut ante et nibh pellentesque sodales eu sed libero. Sed magna magna, sollicitudin non mattis eu, convallis nec lorem. Aenean metus velit, consequat quis tortor quis, volutpat ullamcorper
      erat. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Aliquam semper rhoncus lacus id tempor.
    </p>
    <p>
      Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam in nulla libero. Phasellus quis eleifend urna. Curabitur mollis arcu nec quam venenatis, non luctus nibh ultricies. Proin at nisi vel mauris convallis tempor. Nam porttitor condimentum hendrerit.
      Phasellus quis velit arcu. Sed in porttitor velit. Mauris ut ante et nibh pellentesque sodales eu sed libero. Sed magna magna, sollicitudin non mattis eu, convallis nec lorem. Aenean metus velit, consequat quis tortor quis, volutpat ullamcorper
      erat. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Aliquam semper rhoncus lacus id tempor.
    </p>
    <p>
      Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam in nulla libero. Phasellus quis eleifend urna. Curabitur mollis arcu nec quam venenatis, non luctus nibh ultricies. Proin at nisi vel mauris convallis tempor. Nam porttitor condimentum hendrerit.
      Phasellus quis velit arcu. Sed in porttitor velit. Mauris ut ante et nibh pellentesque sodales eu sed libero. Sed magna magna, sollicitudin non mattis eu, convallis nec lorem. Aenean metus velit, consequat quis tortor quis, volutpat ullamcorper
      erat. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Aliquam semper rhoncus lacus id tempor.
    </p>
  </div>
</div>

关于html - 使用 calc() 容器将宽度设置为固定的 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35999393/

相关文章:

javascript - 动态 DIV 不会因 AJAX 成功而刷新

html - 使用动画 css 属性不工作使 div 间歇性出现

css - 使用 Jekyll-Assets 设置背景图片

jquery - 处理 'mouseleave' 而 'mousedown'

css - 设置叠加图像会导致图像缩小

javascript - Jquery - 数字格式仅在我单击输入框时才起作用

javascript - 如果选择"is"单选按钮,则需要 jQuery 或 JavaScript 验证

html - 在所有浏览器中缩小/放大时边框消失

javascript - 通过隐藏/显示重新定位 iframe

css - 将 Bootstrap 导航栏固定到动态宽度 DIV 的顶部 - 不是页面的全宽