Internet Explorer: переполнение и всплытие - PullRequest
0 голосов
/ 29 октября 2009

У меня есть img внутри div. Я установил для img «float: right», а для div «overflow: hidden». Поскольку div более узкий, чем img, я ожидаю, что левая часть img будет обрезана и скрыта, что действительно имеет место в Firefox. Однако IE отказывается признавать свойство «float: right» для img, всегда привязывая img к левой стороне div и обрезая правую часть img. Есть ли решение этой проблемы? Или я что-то не так делаю?


** справочная информация

Причина, по которой я хочу это сделать, заключается в том, что я хочу, чтобы img появлялся с «слепым» эффектом jquery (слева направо), а затем исчезал с аналогичным слепым эффектом (снова слева направо).

Слепой эффект jquery по умолчанию не обрабатывает исчезновение слева направо. Я предполагаю, что причина этого заключается в том, что определенные комбинации режима (скрытие против показа) и определенные направления (влево или вправо или сверху вниз) требуют дополнительного перемещения верхней левой позиции элемента div. Позвольте мне продемонстрировать на примере. Предположим, мы хотим, чтобы изображение отображалось слева направо с эффектом слепого изображения. Ну, это просто, мы просто устанавливаем переполнение div скрытым, изображение перемещается влево, затем меняем ширину div с 0 на ширину изображения. С другой стороны, если мы теперь хотим, чтобы изображение исчезало слева направо с помощью эффекта слепого, мы должны установить изображение, чтобы плавать вправо, и уменьшить ширину div от ширины изображения до 0, одновременно подталкивая верхний левый угол div вправо, чтобы сохранить правый край изображения.

Я написал код, включающий движения в верхнем левом углу, и он отлично работает в FF, но не работает в IE. Поскольку IE не будет уважать float: right и вместо этого настаивает на привязке изображения к левой стороне, эффект заключается в «слайде» jquery вместо «слепой» анимации.

Ответы [ 2 ]

1 голос
/ 30 октября 2009

Вы можете попробовать следующее для IE 7:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
</head>
<body>
<div style="overflow: hidden; width: 150px; direction: rtl;">
   <img src="yourimage.png" style="float: right" />
</div>
</body>
</html>

Направление: RTEL Styel работает для меня в IE 8 с использованием режима стандартов IE 7. IE 8, использующий стандарты IE 8, не нуждается в стиле направления.

Надеюсь, это решит вашу проблему. Я не уверен, будет ли он работать с любым другим контентом, который вы можете иметь в div, но, похоже, он достигнет желаемого эффекта с изображением.

0 голосов
/ 30 октября 2009

В худшем случае: переместите белый DIV поверх левой части изображения? Очень кроссплатформенный, хотя.

...