Не сразу понял, что происходит когда столкнулся с багом - в Internet explorer 6 отступ визуально казался больше, чем в Mozilla, Opera IE7. При увеличении отступа эта разница становилось более заметной. Хотя, никаких предпосылок к этому, казалось бы, быть не должно - В css всё ровно… Баг наблюдался при указании отступа для “плавающего” элемента (margin-left:10px; float:left) причем, только если отступ и выравнивание в одну сторону.
Как оказалось, это довольно известная проблема с удвоением отступа margin характерна для IE версии 6 и ниже и именно при выравнивании элемента в сторону отступа.. И название у неё имеется - Doubled Float-Margin Bug.
Конечно, можно отказаться от использования margin для плавающего элемента, но есть другой более действенный способ - прописать display:inline для этого же элемента. Кроме того, можно воспользоваться условными комментариями для Internet Explorer версии 6 и ниже (lt 6) или хаками.
Дополнительную информацию можно посмотреть тут: http://www.positioniseverything.net/explorer/doubled-margin.html
upd Бонус расползание фона (background) в IE при ненулевом отступе (margin) как раз на расстояние отступа (margin-bottom:10px; background:url() repeat-y;) вылечилось добавлением width:100% для блокового элемента (ie margin background)
Опубликовано Февраль 25, 2008 | автор: levik | Нет комментариев »
Internet Explorer до 6 версии включительно “по умолчанию” не отображает прозрачность у PNG-изображений.
Очень подробно все проблемы, связанные с отображением PNG картинок в IE расписаны у Игоря:
- Суть и решение проблемы прозрачности PNG в IE6
- Краткая информация о Фильтр AlphaImageLoader
- проблема “Не работают ссылки на png-фоне”
- PNG в IE темнее - искажение цветов PNG изображений в Internet explorer
http://www.tigir.com/alpha_png.htm
UPD - неплохая статья про PNG и IE
http://www.xiper.net/html-and-css-tricks/glyuki-brauzerov/ie6/png-transparency-ie6.html
Опубликовано Ноябрь 21, 2007 | автор: levik | Нет комментариев »
IE 3px float bug - глюк IE 6.
<style>
#left {width: 200px;float: left; border: solid 1px #f00;}
#right {padding:0;border: solid 1px #0f0;margin: 0 20px 0 250px;}
#right p{background: #000;height: 100px;margin:0;}
</style><div id=”left”> </div>
<div id=”right”><p> </p></div>
В IE 6 появляется отступ 3 px у элемента p, который находится на уровне элемента #left, если блок “обтекается” другим блоком (у которого не задана высота) и у последнего есть дочерний блок(у которого задана высота), то этот дочерний блок будет иметь отступ в 3px от родительского блока слева. Замудрено, но похоже на правду…
Как лечить!?
1) Прописать высоту у элемента right (#right:height:1%)
2) С помощью условных комментариев задать отрицательный отступ в ie6
<!–[if lte IE 6]>
<style type=”text/css”>
#right p {margin-left:-3px;}
</style>
<![endif]–>
Опубликовано Октябрь 18, 2007 | автор: levik | Нет комментариев »