我发现这样做的最交叉兼容的方式不是很明显。您需要从第二列中删除浮动,并将其应用于overflow:hidden
它。尽管这似乎隐藏了 div 之外的任何内容,但它实际上强制 div 留在其父级中。
使用您的代码,这是一个如何完成的示例:
<div style="width: 100px; float: left;">menu</div>
<div style="overflow: hidden;">content</div>
希望这对遇到此问题的任何人都有用,在尝试使其适应其他分辨率之后,我发现它最适合我正在构建的站点。不幸的是,如果您在内容之后也包含一个右浮动,这将不起作用div
,如果有人知道一种让它工作的好方法,并且具有良好的 IE 兼容性,我会很高兴听到它。
使用新的、更好的选择display: flex;
既然 Flexbox 模型已经得到了相当广泛的实施,我实际上建议使用它,因为它允许更多flex
的布局能力。这是一个简单的两列,就像原来的一样:
<div style="display: flex;">
<div style="width: 100px;">menu</div>
<div style="flex: 1;">content</div>
</div>
这是一个具有灵活宽度中心列的三列!
<div style="display: flex;">
<div style="width: 100px;">menu</div>
<div style="flex:1;">content</div>
<div style="width: 100px;">sidebar</div>
</div>