Я хочу контейнер с двумя столбцами. Подробности:
Контейнер должен иметь возможность изменять размер (путем изменения размера окна браузера) до минимальной ширины (указанной ранее) или до гораздо большей ширины без нарушения макета. «Нарушение» будет включать изменение размера левого столбца вообще (помните, что он должен иметь фиксированную ширину в пикселях), перенос правого столбца под левый, появление полос прокрутки, блокирующие элементы в правом столбце, не занимающие всю ширину столбца , и в целом любая из вышеупомянутых спецификаций не соответствует действительности.
Если используются плавающие элементы, не должно быть никаких шансов, что правый столбец будет переноситься под левый, что контейнер не сможет содержать оба столбца (путем вырезания любой части столбца или разрешения любой части столбцов, чтобы выйти за его границу), или что появятся полосы прокрутки (поэтому я бы устал предлагать использовать что-либо, кроме overflow: hidden для запуска сдерживания плавающих элементов). Применение границ к столбцам не должно нарушать макет. Содержимое столбцов, особенно правого столбца, не должно нарушать макет.
Кажется, существует простое решение, основанное на таблицах, но при любых обстоятельствах оно терпит неудачу. Например, в Safari мой левый столбец с фиксированной шириной будет уменьшаться, если контейнер станет слишком маленьким, вместо того, чтобы поддерживать указанную мной ширину. Также кажется, что ширина CSS при применении к элементу TD относится к минимальной ширине, так что если внутри него помещается что-то большее, оно расширяется. Я пробовал использовать table-layout: fixed; не помогает. Я также видел случай, когда элемент TD, представляющий правый столбец, не расширяется, чтобы заполнить оставшуюся область, или он будет выглядеть так (например, третий столбец шириной 1 пиксель будет сдвинут до конца вправо), но установка границы вокруг правого столбца покажет, что она равна ширине встроенного содержимого, а элементы уровня блока с шириной, установленной на 100%, не заполняют ширину столбца, а скорее соответствуют ширине встроенного содержимого (т.е. ширина TD, кажется, полностью зависит от содержимого).
Одно возможное решение , которое я видел, слишком сложно; Мне наплевать на IE6, если он работает в IE8, Firefox 4 и Safari 5.