面对一个非常独特的情况。在以下代码中,所有div都嵌套在一个大的父.wrapper
div中。在.wrapper
属性中,我已将定位(上/下)明确定义为0px
和0px
边距。但它仍然向下移动一点,导致整个页面内容向下移动,从而在顶部留下空白。
网站的背景颜色为黑色。您可以看到顶部图像持有者div(灰色)以及其他div稍微向下移动。
*{
box-sizing:border-box;
}
html,body {
margin: 0px;
height: 100%;
width: 100%;
left: 0px;
top: 0px;
background-color: rgba(0,0,0,1);
padding: 0px;
}
a {
text-decoration: none;
color: #FFF;
}
.wrapper {
height: 725px;
max-width: 960px;
margin-left: auto;
left: 0px;
top: 0px;
background-color: rgba(255,0,0,1);
margin-right: auto;
position: relative;
padding: 0px;
}
.topimage {
width: 100%;
max-width: 960px;
height: 100%;
max-height: 175px;
background-color: #666;
position: absolute;
top: 0px;
font-size: 36px;
color: #FFF;
text-align: center;
border: thin solid #FFF;
}
.topimage img {
max-width: 100%;
max-height: 100%;
display: block;
margin-right: auto;
margin-left: auto;
border-radius: 15px 15px 0px 0px;
}
.menu {
background: linear-gradient(#0F1A9B, black 100%);
height: 100%;
max-height: 50px;
max-width: 960px;
position: relative;
top: 175px;
}
.list {
color: rgba(255,255,255,1);
text-decoration: none;
margin-right: auto;
margin-left: auto;
/* [disabled]background-color: rgba(255,0,0,1); */
padding: 0px;
width: auto;
/* [disabled]position: relative; */
height: 100%;
font-family: "MS Serif", "New York", serif;
font-weight: normal;
font-size: 18px;
}
.list li {
display: inline-block;
margin-right: 0%;
margin-left: 2.5%;
width: 10%;
text-align: center;
/* [disabled]background-color: rgba(0,51,255,1); */
position: relative;
padding: 0px;
/* [disabled]float: left; */
line-height: 50px;
vertical-align: top;
}
.content {
width: 100%;
height: 500px;
background-color: #0F1A9B;
position: relative;
top: 175px;
padding-right: 0.5%;
padding-left: 0.5%;
}
.leftcontent {
background-color: rgba(210,238,252,1);
float: left;
height: 100%;
max-height: 500px;
width: 100%;
max-width: 85%;
top: 0px;
position: relative;
border-left-color: rgba(205,205,205,1);
padding-right: 0.5%;
padding-left: 0.5%;
}
.rightcontent {
background-color: rgba(51,177,236,1);
float: right;
height: 100%;
max-height: 500px;
width: 100%;
max-width: 15%;
position: relative;
top: 0px;
/* [disabled]margin-right: 0.3%; */
}
.footer {
}
<div class="wrapper">
<div class="topimage">
Top Image
</div>
<div class="menu">
<ul class="list">
<li><a href="home.html">Home</a></li>
<li><a href="products.html">Products</a></li>
<li><a href="services.html">Services</a></li>
<li><a href="about.html">About Us</a></li>
<li><a href="contact.html">Contact</a></li>
</ul>
</div>
<div class="content">
<div class="leftcontent">
<h1>Home page</h1>
</div>
<div class="rightcontent">
</div>
</div>
</div>
答案 0 :(得分:2)
如果没有边框,填充,内联内容或许可将块的
margin-top
与其第一个子块的margin-top
分开,或者没有边框,填充,内联内容,{ {1}},height
或min-height
将max-height
块与其最后一个孩子的margin-bottom
分开,然后这些边距就会崩溃。 折叠的保证金最终在父母之外。
在您的示例中,您将margin-bottom
设置为绝对位置,使其超出正常内容流。兄弟.topimage
的默认上边距在ul
之外折叠。
要解决此问题,您可以重置.wrapper
的默认上边距:
ul
或者,将.list {
margin-top: 0;
}
添加到父容器overflow:auto
。
div