我有这样的CSS:
#sidebar {
float: left;
margin: 0;
padding: 0;
background: #044169;
}
#sidebar-menu {
height: 100%;
margin: 0;
padding: 0;
background: #CCCCCC;
}
(称之为test.css)和一个简单的HTML文件:
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="test.css">
</head>
<body>
<h1>Test</h1>
<div id="sidebar">
<div id="sidebar-menu">
<ul>
<li>One</li>
</ul>
</div>
</div>
</body>
</html>
我真的不明白为什么sidebar-menu
为35px
为高,sidebar
为51px
宽。 sidebar-menu
不应该高sidebar
......?!?
在我的脑海中,我认为:好吧,margins
为0,paddings
为0,因此包含元素sidebar-menu
,其中height:100%
(容器为{1}} ,我想),应该和集装箱一样大!
我显然遇到了一些非常错误的事情......
答案 0 :(得分:4)
您在sidebar-menu元素中有一个无序列表,该列表尚未设置样式。列表默认具有边距/填充。添加:
ul {
margin:0;
padding:0;
}
现在侧边栏菜单与容器的大小完全相同。
答案 1 :(得分:1)
除非另有说明,否则父容器div会将其自身适当调整为具有绝对大小而非相对大小的最大元素。
div sidebar-menu
没有绝对大小,但是从其子级(带有文本“One”的无序列表)确定其大小。正因为如此,sidebar
实际上将自己的大小设置为35px高和51px宽,那么它的子sidebar-menu
将填充该高度的100%和其子宽度。