我在另一个div徽标中有一个div mainlogo 。现在,当我在顶部给它边距时,它会流到外部div之外。我想要的是,当我给它上边距时,它应该向下移动,而不是将其边缘移到父母之外。
.header {
width: inherit;
height: 100px;
background-color: #0080FF;
box-shadow: 0.5px 0.5px 0.5px 0.5px grey;
}
.headerdiv img {
width: 80px;
}
.headerdiv {
width: 1020px;
margin: 0 auto;
height: inherit;
position: relative;
}
#mainlogo {
height: 80px;
width: 350px;
margin-top: 10px;
}

<div class="header">
<div class="headerdiv">
<a href="onlinequiz login.php">
<div id="mainlogo">
<img src="Images/logo.png"></img>
</div>
</a>
</div>
</div>
&#13;
为什么会这样,我该如何解决?
答案 0 :(得分:1)
棘手的保证金规格。 This page对您遇到的行为有很好的解释。如果您不想将#mainlogo
空格更改为padding
,则可以通过向overflow: hidden
提供.header
属性来解决边距崩溃问题。
.header {
width: inherit;
height: 100px;
background-color: #0080FF;
box-shadow: 0.5px 0.5px 0.5px 0.5px grey;
overflow: hidden;
}
.headerdiv img {
width: 80px;
}
.headerdiv {
width: 1020px;
margin: 0 auto;
height: inherit;
position: relative;
}
#mainlogo {
height: 80px;
width: 350px;
margin-top: 10px;
}
<div class="header">
<div class="headerdiv">
<a href="onlinequiz login.php">
<div id="mainlogo">
<img src="Images/logo.png"></img>
</div>
</a>
</div>
</div>
此外,您可以考虑将#mainlogo
div
更改为span
并自动关闭img
标记,以避免意外的跨浏览器怪癖。
答案 1 :(得分:0)
因为你正在使用泛化DIV原样。使用浮动属性,即 float:left ,
它会起作用
像这样,#mainlogo {
float:left;
height: 80px;
width: 350px;
margin-top:20px;
}
答案 2 :(得分:0)
试试这个...将headerdiv的position属性设置为position:absolute;
.headerdiv {
width: 1020px;
margin: 0 auto;
height: inherit;
position: absolute;
}