所以我遇到了最后一段显然没有清除并滑入h1
和nav
中间的问题。但是当我把一个明确的div放在一个div:这两个属性在段落之前它似乎工作。
请耐心等待fiddle。
display:block;
移除h1 > a
,则布局会中断以便跟进问题,我应该浮动哪些元素以及应该在哪里应用clearfix。答案 0 :(得分:1)
您看到的问题出现是因为清算元素位于错误的位置。
考虑你的CSS:
h1 {
margin: 0;
float: left;
background: red;
text-indent: -9999px;
border: 1px dashed cyan;
}
nav {
height: 44px;
margin: 0;
float: right;
background: black;
border: 1px dashed cyan;
}
.group:after {
content:"x";
display:table;
clear:both;
background-color: cyan;
}
你左h1
向左浮动,nav
向右浮动,然后你的p
块带有你的文字(没有浮动)。
除非您按照前面的说明将p
规则添加到clear:both
,否则p
内容会按预期包装两个已浮动的元素。
清除元素必须出现在 nav
元素之后的 DOM中。
在此示例中,您将.group
应用于nav
,这会生成在ul
阻止nav
阻止后出现的内容。
问题变得更加明显,您将nav
高度设置为auto
并添加一些边框和颜色以显示各个块的边缘。
请参阅演示:http://jsfiddle.net/audetwebdesign/9nGQy/
问题可以看作如下:
我添加了一个x
来标记清算元素的生成内容中的点,该元素显示在nav
块中。
答案 1 :(得分:0)
尝试:
p{
clear:both;
}
根据您的结果,它应该适合您。