我正在处理 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/