我对这个项目有一个问题,其中div似乎与它上面的div有差距。调试后,我发现差距不仅在顶部,而且在底部。当我添加overflow:auto
或overflow:hidden
时,神秘的间隙消失,div触摸(根据需要),但是当我设置overflow:visible
或者根本不设置它时,大约40px从顶部和底部取下。为什么要这样做?
Full JSFiddle for example,只需将overflow:auto
添加到" hero-container"在CSS中修复'它
#header{
height: 50px;
background-color: #05568D;
border-radius: 10px 10px 0px 0px;
position: relative;
}
#header > ul{
list-style-type: none;
padding: 0px 20px 0px 20px;
margin: 0px;
background-color:darkmagenta;
position: absolute;
top: 50%;
transform: translateY(-50%);
}
#header > ul > li{
padding: 0px 10px 0px 10px;
color: white;
font-size: 20px;
float: left;
background-color: red;
}
#hero{
background-color: white;
border-radius: 0px 0px 10px 10px;
}
#hero-container{
margin: 0px 100px 0px 100px;
background-color: red;
overflow: visible;
}
body{
background: #0769AD;
margin: 0;
padding: 0;
font-family: 'Teko', sans-serif;
}
.container{
width: 96%;
margin: 0 auto;
}

<div id="header" class="container">
<ul>
<li>Download</li>
<li>API Documentation</li>
<li>Blog</li>
<li>Plugins</li>
<li>Browser Support</li>
</ul>
</div>
<div id="hero" class="container">
<div id="hero-container">
<p>This is a paragraph</p>
</div>
</div>
&#13;
有人可以向我解释这个逻辑因为我感到困惑。如果它只是一个<p>
并且其父母的高度被设定,那么溢出的需要是什么?
答案 0 :(得分:0)
由于<p></p>
的默认边距为top和bottom,因此如果设置*{margin:0;padding:0;box-sizing:border-box;}
,则不会出现此问题。