除非我添加溢出 :hidden?,否则 CSS 背景颜色不会显示为什么?

标签 css background-color

我正在处理 CSS 布局,但我不明白为什么导航栏的背景颜色不显示,除非我将 overflow: hidden 添加到 CSS。有人可以向我解释发生了什么事吗?谢谢:)

我的 CSS 文件:

@import "reset.css"; /* Meyer's CSS reset */

body { background-color: #f3f3f3;   font: 15px sans-serif; }

#wrapper { 
  width: 1000px;
  margin: 0 auto;
}

#navigation {
  width: inherit;
  margin-top: 20px;
  background-color: #ccc;
  overflow: hidden;
}

#navigation li {
  float: left;
}

#navigation li a {
  display: block;
  padding: 10px 10px;
  text-decoration: none;
  color: #000;
}

#navigation li a:hover {
  background-color: #aaa;
}

我的 HTML 文件:

<!DOCTYPE html>
<html>
<head>
  <title>Layout</title>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <link rel="stylesheet" type="text/css" href="css/styles.css" />
</head>
<body>
  <div id="wrapper">
    <div id="navigation">
      <ul>
        <li><a href="">Nav0</a></li>
        <li><a href="">Nav1</a></li>
        <li><a href="">Nav2</a></li>
        <li><a href="">Nav3</a></li>
        <li><a href="">Nav4</a></li>
        <li><a href="">Nav5</a></li>
      </ul>
    </div>
    <div id="header">
    </div>
    <div id="content">
    </div>
    <div id="footer">
    </div>
  </div>
</body>
</html>

最佳答案

overflow: hidden 导致容器建立一个新的 formatting context其中包含花车。没有它, float 元素会形成自己的格式化上下文并独立于容器显示,超出正常流程。

关于除非我添加溢出 :hidden?,否则 CSS 背景颜色不会显示为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6479018/

相关文章:

android - 设置列表项背景色失去高亮

背景颜色的 CSS 过渡

css - 来自位置的背景颜色

jquery - 根据客户类型更改 _Layout 页面上的 CSS 并存储数据库值

html - 与 CSS 表格相同高度的列 - 段落标记打破平等

c# - 为什么我的 Label-control 不使用 CSS 样式?

javascript - 如何在鼠标悬停时突出显示文本

html - 包含图像和文本的子 div 有高度,但父 div 没有

css - 有没有办法让第二行文本垂直填充?

html - Foundation - 根据 Foundation 断点重新组织 block