Сохранение плавающего изображения внутри div с помощью CSS
У меня такая проблема, как всегда, но никогда не пытайтесь найти правильное решение
код:
<div id="ListOfTextAndPhotos">
<div style="border-bottom: solid 1px silver;">
<img src="photo.jpg" style="float: left">
Some text about the photo
</div>
<div style="border-bottom: solid 1px silver;">
<img src="photo2.jpg" style="float: left">
Some text about the photo2
</div>
<div style="border-bottom: solid 1px silver;">
<img src="photo3.jpg" style="float: left">
Some text about the photo3
</div>
</div>
Вопрос:
Как сохранить фотографию внутри DIV? с разделительной линией под фотографией
Ответы
Ответ 1
Более традиционным способом (кроме очистки) является установка свойства переполнения содержащего div скрытого.
<div style="border-bottom: solid 1px silver; overflow: hidden;">
<img src="photo3.jpg" style="float: left">
<div>Some text about the photo3</div>
</div>
Иногда IE6 не соблюдает настройки, и вам приходится прибегать к взлому cLFlaVA.
Ответ 2
Плавающий элемент выводит его из потока документа, поэтому он не занимает места в общем потоке при рендеринге на экране. Существуют и другие способы обращения с этим, но здесь взломать:
<div id="ListOfTextAndPhotos">
<div style="border-bottom: solid 1px silver;">
<img src="photo.jpg" style="float: left">
<div style="clear:both;">Some text about the photo</div>
</div>
<div style="border-bottom: solid 1px silver;">
<img src="photo2.jpg" style="float: left">
<div style="clear:both;">Some text about the photo2</div>
</div>
<div style="border-bottom: solid 1px silver;">
<img src="photo3.jpg" style="float: left">
<div style="clear:both;">Some text about the photo3</div>
</div>
</div>
Ответ 3
Быстрый и грязный способ сделать это - это поместить также содержащий div div.
Ответ 4
Добавление <div style="clear:both;"></div>
- это полный взлом и убивает вашу способность изменить свое мнение позже. Правильные решения - использовать чистый css с overflow: hidden;
или zoom: 1;
.
Однако, это немного больше, чем просто добавление переполнения: скрытое, поскольку вам также нужно убедиться, что содержащийся блок также имеет атрибут ширины.
Я также хотел бы отметить, что в вышеприведенном вопросе и одобренном ответе, в чем смысл плавания изображения в первую очередь, если текст сразу же предлагается очистить его?
http://www.quirksmode.org/css/clearing.html
Ответ 5
У меня была аналогичная проблема, когда мои изображения переполняли мой div:
< div id = "offer" > < div class= "внутренний" > < img src= "offer.png" alt="" >
где я должен был иметь мое изображение float: right; так что текст появится с левой стороны и заполнит пробел. Я не мог понять, почему черт он так переполнится, но tj111 "быстрый и грязный" способ сделать #offer {float: left/right/upmycornhole;} полностью решил проблему и не изменил положение div с содержащий div находится внутри обертки, которая удерживает его на месте на странице.
Спасибо, что ты спасатель жизни!