将元素扩展到容器之外,但将子容器保留在容器中

时间:2016-07-27 13:30:48

标签: html css

我最近遇到了一个问题,我希望将所有内容保存在父容器中,但我希望导航背景为页面宽度的100%。我尝试过的方法在导航为100%宽度的页面方面起作用,但现在ul内部不受容器的影响,这是我最初想要的。

我通过在导航中使用另一个容器div来实现它,但我觉得这是一个非常简单的方法。

有关如何让父容器影响导航中的ul的任何建议吗?

HTML:

<div class="container">
  <nav class="menu">
    <div class="container">
    <ul>
      <li><a href="#view1">HOME</a></li>
      <li><a href="#view2">ABOUT ME</a></li>
      <li><a href="#view3">SERVICES</a></li>
      <li><a href="#view4">CURRENT PROJECT</a></li>
      <li><a href="#view5">PORTFOLIO</a></li>
      <li><a href="#view6">CONTACT ME</a></li>
    </ul>
    </div>
  </nav>
</div>

CSS:

.container {
    margin: 0 auto;
    width: 1200px;
}

.menu {
    left: 0;
    right: 0;
    height: 80px;
    position: fixed;
    background-color: rgb(33, 33, 33);
}

.menu ul {
    padding: 0;
    margin: 0;
    color: #fff;
    list-style: none;
    font-weight: bold;
    height: 80px;
    float: right;
}

.menu ul li {
    display: inline-block;
    padding-right: 50px;
}

1 个答案:

答案 0 :(得分:0)

您可以使用:before:after伪选择器来创建看似让width等于页面的width的背景效果。

body {
  overflow: hidden;
  width: 100%;
  margin: 0;
}
.container {
  max-width: 1200px;
  margin: 0 auto;
}

.menu {
  height: 80px;
  position: relative;
}

.menu:before {
  background-color: rgb(33, 33, 33);
  position: absolute;
  right: -9999px;
  left: -9999px;
  content: '';
  z-index: -1;
  bottom: 0;
  top: 0;
}

.menu ul {
  padding: 0;
  margin: 0;
  color: #fff;
  list-style: none;
  font-weight: bold;
  float: right;
}

.menu ul li {
  display: inline-block;
  padding-right: 50px;
}
.menu ul li a {
  color: #fff;
}
<div class="container">
  <nav class="menu">
    <ul>
      <li><a href="#view1">HOME</a></li>
      <li><a href="#view2">ABOUT ME</a></li>
      <li><a href="#view3">SERVICES</a></li>
      <li><a href="#view4">CURRENT PROJECT</a></li>
      <li><a href="#view5">PORTFOLIO</a></li>
      <li><a href="#view6">CONTACT ME</a></li>
    </ul>
  </nav>
</div>