【发布时间】:2017-02-16 18:09:31
【问题描述】:
请看以下示例:
.wrapper {
width: 740px;
background: #ccc;
}
.leftSidebar {
float: left;
width: 200px;
}
.mainContent {
padding-right: 200px;
padding-left: 200px;
}
<div class="wrapper">
<div class="leftSidebar">
<h2>Heading</h2>
<pre>.leftSidebar {
float:left;
width:200px;
}</pre>
</div>
<div class="mainContent">
<h2>Heading</h2>
<pre>.mainContent {
padding-right:200px;
padding-left:200px;
}</pre>
</div>
</div>
.wrapper {
width: 740px;
background: #ccc;
}
.leftSidebar {
float: left;
width: 200px;
}
.mainContent {
padding-right: 200px;
padding-left: 200px;
border: 1px solid rgba(0, 0, 0, 0);
}
<div class="wrapper">
<div class="leftSidebar">
<h2>Heading</h2>
<pre>.leftSidebar {
float:left;
width:200px;
}</pre>
</div>
<div class="mainContent">
<h2>Heading</h2>
<pre>.mainContent {
padding-right:200px;
padding-left:200px;
border: 1px solid rgba(0, 0, 0, 0);
}</pre>
</div>
</div>
正如您在上面看到的,mainContent 的透明边框显着改变了布局。
这是我对正在发生的事情的想法:由于某些原因,mainContent 上应用的border: 1px solid rgba(0, 0, 0, 0); 导致浮动leftSidebar 的边距与mainContent 的边距一起折叠,就像display: inline-block 一样应用在mainContent 上就可以了。
但是,我不知道细节。 relevant part of CSS 2.1 对我来说太难理解了。谁能告诉我为什么以及如何确切发生崩溃?
【问题讨论】:
标签: html css layout border margin