它很容易看到。在示例 1 中一切正常,但是当我在示例 2 中添加一行代码时,它就坏了。为什么?我应该如何编码?
示例 1:http: //jsfiddle.net/sUtvd/154/
[...].tripple {
width: 90%;
margin: 5%;
}[...]
示例 2:http: //jsfiddle.net/Ec95D/3/
[...].tripple {
width: 90%;
margin: 5%;
border: solid;
}[...]
它很容易看到。在示例 1 中一切正常,但是当我在示例 2 中添加一行代码时,它就坏了。为什么?我应该如何编码?
示例 1:http: //jsfiddle.net/sUtvd/154/
[...].tripple {
width: 90%;
margin: 5%;
}[...]
示例 2:http: //jsfiddle.net/Ec95D/3/
[...].tripple {
width: 90%;
margin: 5%;
border: solid;
}[...]
Add float:left to .tripple if border should go all way around divs
You should clear your floats: you can use this standard css from HTML5 biolerplate:
.clearfix:before,
.clearfix:after {
content: " ";
display: table;
}
.clearfix:after {
clear: both;
}
<div class="tripple clearfix">
浮动属性在:
.left, .right, .middle {
float:left;
width: 33%;
height: 100px;
}
使父 div 为空。Float 是一个 CSS 定位属性。
可能有更好的方法,但一种简单的方法是将每个彩色框放在一个具有 0 单元格间距和填充的表格中。
我个人使用 divclear:both
用于这些场合。检查这个小提琴。
你需要清除浮动。当所有子元素都浮动时,父元素不知道它们的高度,因此会折叠。将诸如 clearfix 之类的东西放在父级上应该可以解决问题。有关 clearfix 的详细信息,请参阅http://nicolasgallagher.com/micro-clearfix-hack/。
有关工作示例,请参见http://jsfiddle.net/designingsean/Ec95D/4/ 。链接中的 CSS 如下。然后只需添加.cf
到父元素。
.cf:before,
.cf:after {
content: " ";
display: table;
}
.cf:after {
clear: both;
}
你也可以让父母有一个overflow
几乎任何东西的集合,尽管auto
在大多数情况下是最有意义的。有关该示例的工作示例,请参见http://jsfiddle.net/designingsean/cx7Wg/。
有关 clearfix 与溢出的更多信息,请查看这个非常可靠的 SO 问题和答案:我可以使用哪些“clearfix”方法?