我在一个包含div的内部div.
<div id="container">
<div id="inner"></div>
</div>
Run Code Online (Sandbox Code Playgroud)
#container {
width: 100px;
height: 100px;
background-color: red;
}
#inner {
margin: 30px;
width: 40px;
height: 40px;
background-color: black;
}
Run Code Online (Sandbox Code Playgroud)
我希望这能使一个小的黑盒子在一个更大的红色盒子里垂直和水平居中.相反,我得到一个黑盒子贴在红色框的顶部,红色框有边缘顶部.
有人能解释一下CSS认为它在做什么吗?
Rya*_*ale 12
虽然提供的解决方案是可行的,但没有人解释问题.它被称为边缘折叠,在几种情况下都会发生.
场景1 - 这些项目仅相差30px,因为边缘会一起折叠而较大的边缘占优势.
<div style="margin-bottom: 20px"></div>
<div style="margin-top: 30px"></div>
Run Code Online (Sandbox Code Playgroud)
场景2 - (您的场景)内框的边距溢出外框.
<div class="outer">
<div style="margin-top: 20px"></div>
</div>
Run Code Online (Sandbox Code Playgroud)
解决方案是给外盒一些填充或边框(如其他人所建议的).通常,我在外盒上使用以下CSS来缓解这样的情况:
.outer {
margin-top: -1px;
border-top: 1px solid transparent;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4746 次 |
| 最近记录: |