JSFiddle: ExampleГоризонтальная прокрутка DIV без фиксированной высоты со всеми содержала DIVS высоту самого высокого ребенка
Я искал способ, чтобы иметь контейнер DIV с высотой, равной его высоким ребенком.
Каждый ребенок должен быть рассчитан на высоту контейнера.
Мне также нужен контейнер для прокрутки по горизонтали, если дети превысят его ширину.
До сих пор я пробовал использовать встроенный блок и поплавок: слева, но не получил результаты, которые я хочу. Высота установки: 100% на детей также не имеет желаемого эффекта. Использование overflow: auto в контейнере по-прежнему завертывает последний элемент на следующую строку.
Я довольно уверен, что могу выполнить это с помощью JavaScript, захватив высоту самого высокого ребенка и соответствующим образом изменив размер и установив фиксированную высоту на контейнере. Я бы предпочел не использовать JavaScript, хотя я думаю, что это возможно только с помощью CSS-обмана.
HTML
<div>
<div class='boxed'><ul><li>1</li></ul></div>
<div class='boxed'><ul><li>1</li><li>2</li></ul></div>
</div>
<div class='container'>
<div class='boxed'><ul><li>1</li></ul></div>
<div class='boxed'><ul><li>1</li><li>2</li></ul></div>
<div class='boxed'><ul><li>1</li><li>2</li></ul></div>
<div class='boxed'><ul><li>1</li><li>2</li></ul></div>
<div class='boxed'><ul><li>1</li><li>2</li></ul></div>
<div class='boxed'><ul><li>1</li><li>2</li></ul></div>
<div class='boxed'><ul><li>1</li><li>2</li><li>3</li></ul></div>
<div class='boxed'><ul><li>1</li><li>2</li></ul></div>
<div class='boxed'><ul><li>1</li><li>2</li></ul></div>
<div class='boxed'><ul><li>1</li><li>2</li></ul></div>
<div class='boxed'><ul><li>1</li><li>2</li></ul></div>
<div class='boxed'><ul><li>1</li><li>2</li></ul></div>
</div>
CSS
.boxed { display: inline-block; border: 1px solid black; }
.container { overflow-x: auto; }
С вертикальной выровненностью: верхняя часть, которая отлично смотрится на моей фактической странице. Благодарю. Одно из предостережений заключается в том, что MDN перечисляет таблицу-ячейку, поскольку она не работает с IE7 (который является самым старым браузером, который я поддерживаю). У вас есть возможность сделать его не уродливым с IE7, даже если он не идеален? – Chris
@CLandry К сожалению, у меня нет никаких идей о том, как поддерживать IE7 в этом случае. [Этот подход] (http://stackoverflow.com/questions/1690642/purpose-of-asterisk-before-a-css-property) пришел на ум, однако я не знаю никаких свойств, чем мог бы вести себя как таблица -cell' делает. Это позорные браузеры, подобные этим, должны поддерживаться :) –
Еще раз спасибо. Я собираюсь преобразовать его в таблицу, поскольку table-cell подделывает td, я просто превращу его в реальный. Это уродливо, но должно работать во всех моих целевых браузерах. – Chris