为什么我的<ul>有一个不是其父元素的元素的背景?

时间:2015-07-08 20:05:43

标签: css background-color

我正在尝试构建一个带有标题的页面,其中包含一个位于底部的导航栏。但是,导航栏具有主要内容的背景颜色,而不是标题。

我在网站上搜索了类似的问题,并尝试了overflow:hidden,或者按照建议添加overflow:auto到.main,但这些解决方案都没有。我也尝试从我的CSS中删除一些行,例如float:left;这也没有用。添加背景:继承到ul只会为导航栏周围的小区域提供背景颜色,而不是标题的宽度。

&#13;
&#13;
.main {
  background-color: DarkOliveGreen;
  border-radius: 15px;
  max-width: 1000px;
  margin: 0 auto;
  text-align: center;
  height: 800px;
}
header {
  background: Chartreuse;
  border-radius: 15px 15px 0 0;
  padding: 10px 10px 10px 10px;
}
ul {
  float: left;
  display: block;
  position: absolute;
  margin-left: -45px;
}
li {
  display: inline;
  background: cyan;
  border: 2px solid black;
  border-radius: 5px 5px 0 0;
  margin-left: -5px;
}
h1 {
  font-size: 35px;
  margin: 10px 0 0 0;
}
img {
  max-height: 150px;
  max-width: 150px;
}
.item {
  display: inline-block;
  padding: 60px;
  margin-top: 40px;
  width: 200px;
  height: 200px;
  float: left;
}
h2 {
  font-size: 25px;
}
&#13;
<div class="main">
  <header>
    <h1>Gallery</h1>
    <ul>
      <li><a href="/index.html">Home</a>
      </li>
      <li><a href="/gallery.html">Gallery</a>
      </li>
    </ul>
  </header>
  <div class="pictures">
    <article class="item">
      <img src="#">
      <h2>Image 1</h2>
    </article>
    <!-- several more .item articles with an image and h2. -->
  </div>
</div>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:0)

这是由于position: absolutefloat: left导致元素退出文档流程。

&#13;
&#13;
.main {
  background-color: DarkOliveGreen;
  border-radius: 15px;
  max-width: 1000px;
  margin: 0 auto;
  text-align: center;
  height: 800px;
}
header {
  background: Chartreuse;
  border-radius: 15px 15px 0 0;
  padding: 10px 10px 10px 10px;
}
ul {
  display: block;
  margin-left: -45px;
  text-align: left;
  margin-left: 20px;
}
li {
  display: inline;
  background: cyan;
  border: 2px solid black;
  border-radius: 5px 5px 0 0;
  margin-left: -5px;
}
h1 {
  font-size: 35px;
  margin: 10px 0 0 0;
}
img {
  max-height: 150px;
  max-width: 150px;
}
.item {
  display: inline-block;
  padding: 60px;
  margin-top: 40px;
  width: 200px;
  height: 200px;
  float: left;
}
h2 {
  font-size: 25px;
}
&#13;
<div class="main">
  <header>
    <h1>Gallery</h1>
    <ul>
      <li><a href="/index.html">Home</a>
      </li>
      <li><a href="/gallery.html">Gallery</a>
      </li>
    </ul>
  </header>
  <div class="pictures">
    <article class="item">
      <img src="#">
      <h2>Image 1</h2>
    </article>
    <!-- several more .item articles with an image and h2. -->
  </div>
</div>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

在标题更改中的CSS文件中 背景:黄绿色; 到
background-color:Chartreuse;