Заставить плавающий элемент или элемент абсолютного позиционирования оставаться в потоке & # 8220; с CSS
Вопрос
Я ищу способ заставить плавающие или абсолютно позиционированные элементы оставаться в потоке в css. Я в значительной степени думаю, что css глуп, потому что у него нет чего-то похожего на поток: на поток: выключен, чтобы держать его в потоке или вынимать. Р>
Проблема в том, что я хочу иметь элемент div с переменной высотой, у меня есть плавающее изображение слева в div, и я хочу, чтобы div был как минимум высотой изображения. Я также хочу, чтобы он был достаточно большим, чтобы вместить весь текст, который есть в потоке (это, очевидно, не проблема).
Мне нужно, чтобы изображение могло различаться по размеру. В настоящее время я использую решение jQuery, но оно работает. Так как я не чувствую отладки и чувствую, что должно быть каким-то решением CSS, я спрашиваю.
Кто-нибудь знает, как я могу это сделать?
Решение
Обычно я использую переполнение : скрытый
или переполнение : auto
.
Другие советы
Вместо того, чтобы использовать новый элемент для очистки div в конце, вы можете добавить это в абсолютный div css;
overflow: auto;
Очевидно, IE любит играть по-другому, поэтому вам также нужно указать ширину. Я предполагаю, что абсолютный div имеет заданную ширину ... так что вы можете просто установить его на эту ширину.
.abs-div {
position: absolute;
overflow: auto;
width: 160px; /* Replace with your width */
}
Хак, который может сработать в вашей ситуации, - это добавить еще один элемент в ваш div после остальной части содержимого, для которого свойство clear clear CSS установлено в " both " (или слева, так как ваше изображение слева). например:
<br style="clear: both" />
Это заставит элемент ниже плавающих элементов растянуть содержащий div.