IE7 родительский div автоматически применяет clear: оба к тегу закрытия div - PullRequest
0 голосов
/ 20 июня 2011

с учетом следующего кода:

<!doctype html>
<div style="position:relative;border:1px solid red;width:500px;overflow:visible;">
<div style="height:200px;border:1px solid orange;float:right;">test</div>
</div>
stuff

Каждый браузер, кроме IE7 (и IE8 в совместимости с IE7), отображает это правильно, однако в IE7 родительский div автоматически расширяется до высоты плавающего дочернего элемента.

Есть ли способ отключить эту "функцию", чтобы у меня был плавающий div, выходящий за пределы закрывающего тега родителя?

Ответы [ 3 ]

1 голос
/ 20 июня 2011

Вы должны помешать вашему внешнему div получить hasLayout.

Определенные вещи заставляют hasLayout, и width: <anything other than "auto"> является одним из них.

(Ваш оригинальный код для сравнения: http://jsfiddle.net/T6QsS/)

Например, удаление width работает в IE7: http://jsfiddle.net/T6QsS/1/

Чтобы использовать width, необходимо добавить его к дополнительному элементу обертки: http://jsfiddle.net/T6QsS/2/

0 голосов
/ 20 июня 2011

Вы можете настроить таргетинг на IE7, используя * CSS-хак.Попробуйте это: http://jsbin.com/ufoqo5/2/edit

0 голосов
/ 20 июня 2011

Один из вариантов - если вы знаете желаемую высоту родителя, вы можете указать ее в родительском div Например, в вашем случае:

<!doctype html>
<div style="position:relative;border:1px solid red;width:500px;overflow:visible; height: 0px;">
<div style="height:200px;border:1px solid orange;float:right;">test</div>
</div>
stuff

Здесь - скрипка для тестирования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...