如何防止浮动元素的父母崩溃?虽然像这样的元素<div>S通常使用float属性会给CSS新手带来一个令人吃惊的问题:如果浮动元素具有非浮动父元素,则父元素将崩溃。例如:<div> <div style="float: left;">Div 1</div> <div style="float: left;">Div 2</div></div>本例中的父div将不膨胀要控制它的漂浮子-它似乎有height: 0.你怎么解决这个问题?我想在此提出一个详尽的解决办法清单。如果您意识到跨浏览器兼容性问题,请指出它们。解决方案1让父母浮起来。<div style="float: left;"> <div style="float: left;">Div 1</div> <div style="float: left;">Div 2</div></div>行家*语义代码。反方:您可能不总是希望父级浮动。即使你这样做了,你会让父母的父母浮起来吗,依此类推?你必须让每个祖先元素浮起来吗?解决方案2给父母一个显式的高度。<div style="height: 300px;"> <div style="float: left;">Div 1</div> <div style="float: left;">Div 2</div></div>行家*语义代码。反方不灵活-如果内容更改或调整浏览器大小,布局将中断。解决方案3在父元素中追加一个“间隔”元素,如下所示:<div> <div style="float: left;">Div 1</div> <div style="float: left;">Div 2</div> <div class="spacer" style="clear: both;"></div></div>行家*简单易懂的代码。反方没有语义;间隔div仅作为布局黑客存在。解决方案4将父级设置为overflow: auto.<div style="overflow: auto;"> <div style="float: left;">Div 1</div> <div style="float: left;">Div 2</div></div>行家:不需要额外的div。反方看上去像是黑客-那不是overflow财产的指定用途。评论?其他建议?
4 回答
红颜莎娜
TA贡献1842条经验 获得超12个赞
overflow: auto
float: left
元芳怎么了
TA贡献1798条经验 获得超7个赞
{ clear: both; }
clearfix
.clearfix:after { content: "."; display: block; clear: both; visibility: hidden; line-height: 0; height: 0;}.clearfix { display: inline-block;}html[xmlns] .clearfix { display: block;}* html .clearfix { height: 1%;}
- 4 回答
- 0 关注
- 555 浏览
相关问题推荐
添加回答
举报
0/150
提交
取消