在没有高度的div上使用<br clear=all>的CSS方式?
这个问题在这里已经有了答案:
你应该使用
<br style="clear: both">
因为clear
属性是折旧的。 虽然这不是很有说服力。
更有说服力的达到同样的目的是使用一个类:
.clear {
clear: both;
}
另一种方法是将以下类放在包含元素上:
.container {
overflow: hidden; /* can also be "auto" */
}
然后是“clearfix”方法,您将其放在包含的元素上:
.clearfix:after {
content: "";
display: table;
clear: both;
}
你可以阅读更多:http://www.sitepoint.com/clearing-floats-overview-different-clearfix-methods/
编辑:如果你想divs是相同的高度,并且你的目标是IE10 +,你可以使用flexbox。 非常简单:http://learnlayout.com/flexbox.html
这里有一个关于flexbox的交互式教程:http://cvan.io/flexboxin5/
最好的可能是使用clearfix方法:
.welcomeText:before, .welcomeText:after {
content:"";
display:table;
}
.welcomeText:after {
clear:both;
}
在CSS的开始,我们使用了一个带有“clear:both”属性的div
但现在使用CSS,我们可以使用伪元素,就像div中的元素,但是使用CSS创建。
你可以阅读任何关于清理浮动的文章。 例如:这一个解释浮动问题:http://diywpblog.com/when-and-how-to-use-a-clearfix-css-tutorial/
但这不是你参加的答案,因为你希望所有的子div都和父子div一样高。
您可以在父级上使用display:table
在其上display:table-cell
,但删除float:left
;
自动制作div的高度是不可能的(除非你给出了固定的高度)。
但是,它是与jQuery(使div的高度相同):
var heights = [];
$(".houseTiles, .houseTiles2").each(function() {
heights.push($(this).height());
});
var biggestheight = Math.max.apply(null, heights);
$(".houseTiles, .houseTiles2").each(function() {
$(this).css("height",biggestheight);
});
如此JSFiddle演示中所示。
对于浮动元素有一个高度,你可以给他们下面的CSS :
.houseTiles, .houseTiles2 {
display:table;
overflow:hidden;
}
这也清除了浮点数,正如你所做的clear=all
或clear:both
。
上一篇: A CSS way of using <br clear=all> on divs without heights?