Самый перекрестно-совместимый способ, который я нашел, не очень очевиден. Вам нужно удалить поплавок из второго столбца и применить 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>