Тег изображения в переполнении div
Я создавал простой HTML с заголовком и логотипом. Я делаю это для шаблонов электронной почты, так что все встроенные стили. Я заметил, что происходит разрыв поплавка, и изображение переполняет его родителя.
<div style="width:640px;">
<!-- header -->
<div id="header" style="background-color:#005387; height:160px;">
<div id="logo-container" style="margin-top:20px;margin-left:20px;">
<img src="https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcTPCYwy-3sPJo4XjlB28KVXivC2FlDjYquB1i5Kb7assH9trLoanw">
</div>
</div>
</div>
Есть идеи, почему это происходит? Когда я добавляю переполнение: скрытое в #header elem, оно работает нормально. Но я не плаваю в этом элементе, тогда почему разрыв?
РЕДАКТИРОВАТЬ:
Окей, я не был достаточно ясен. Обновил код. Я хочу добавить margin-top в # logo-container. Но когда я это делаю, весь div выходит из строя, как будто #header не находится в нормальном потоке (что я имел в виду под float-break, который обычно происходит, когда мы плаваем элементы внутри родителя).
4 ответа
Почему бы просто не указать высоту на img
?
<img src="https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcTPCYwy-3sPJo4XjlB28KVXivC2FlDjYquB1i5Kb7assH9trLoanw" height="60px">
В противном случае просто не указывайте высоту заголовка.
На основании вашего обновления..
Маржа не работает, потому что div
рушится.. посмотри на это:
Плавать div
.. http://jsfiddle.net/HMswX/10/
Применять overflow:auto
.. http://jsfiddle.net/HMswX/12/
Если вы хотите узнать больше о разрушении divs
увидеть этот пост тот же вопрос..
У JoshC есть правильный ответ на ваш вопрос о том, почему это происходит.
Для желаемого эффекта, почему бы просто не добавить дополнение к родительскому div?
<div id="header" style="background-color:#005387; padding:20px">
<div id="logo-container">
Это избавляет вас от необходимости устанавливать явную высоту.
Потому что вы определили в div с id=header:
height:60px;
Вы хотите, чтобы изображение уменьшилось или каков ваш желаемый результат?
Я не уверен, что вы подразумеваете под разрывом числа, но вы указываете height
в вашем #header
которая меньше, чем высота вашего изображения. Таким образом, по умолчанию он будет переполнен. Если вы укажете overflow:hidden
будет отрезано. Почему бы не удалить height
и указать overflow:auto
в вашем #header
? Альтернатива уменьшить размер вашего изображения, давая ему height
, тоже.
Смотрите jsFiddle 1 и jsFiddle 2.