Несколько злых багов IE

Столкнулся недавно с некоторыми интересными багами в IE.

Всем наверно известно насколько несовершенна и глючна модель CSS-позиционирования IE, но описания этих багов я вроде бы нигде не встречал, хотя целенаправленно таковые и не искал :-).

Вложенное относительное позиционирование

В макете, который я делал, были вложенные блоки с position:relative;, согласно логике блок спозиционированный асолютно (position:absolute;) должен позиционироваться относительно ближайшего родителя, который имеет position:relative;, однако IE почему-то такой логике не следует, а позиционирует блок относительно самого первого родителя, который имеет position:relative;. Побороть этот глюк я так и не смог :-(.

Ускользающие ссылки

Ссылки в абсолютно спозиционированных блоках, фоном которых является загруженное в CSS фильтром AlphaImageLoader PNG-изображение с альфа каналом, кликнуть практически невозможно, потому что они мистическим образом исчезают :-). Этот глюк тоже побороть не удалось.

Постскриптум

Кстати, я немного обновил шапочку, зимой навеяло что-то...

И ещё: никого не раздражают мои приземлённые посты на главной странице раджаки? А то я выпадаю немного из общего формата со своими рабочими записками, и мне кажется, что кому-то они могут показаться неинтересными и никчемными. Если есть таковые, кому это не нравится, то я могу из общей ленты свой блог убрать, я понимаю, что формат не тот ;-).

Update

Как оказалось глюк с исчезающими ссылками можно решить как и большинство проблем с помощью присваивания инлайн-блокам ссылок position:relative;. Вот так то, такой вот он загадочный всеми обожаемый и мне ненавистный Internet Explorer...

Комментарии (15)

  1. olka говорит:

    Шапочка классная! Записки не убирай, типа хоть кто-то из нас делом занят ;)

  2. Q-Zma говорит:

    да ладно, делом… просто у других есть дела поважнее наверно :-)

  3. Рост говорит:

    Желаю тебе в новом году меньше работать и больше получать!

    Олке того же наверное.

  4. Q-Zma говорит:

    Спасибо, Рост, похоже, что только мне кажется, что посты из моего блога кого-то раздражают :-).

  5. Рост говорит:

    Трудно сказать наверняка. Патамушта это зависит от:

    1. Твоего поста (читай: твоего (не)настроения в момент постификации)
    2. От настроения читателя.
    3. От фазы луны.
    4. От Них (только никому не говори!).

  6. crawler говорит:

    спасиба, бальшой(о виликий) за position:relative; как засчиту от исчезаия элементов в ie. теперь продам свой шаманский бубен и куплю пива.

  7. Q-Zma говорит:

    не понятно это типа насмешка или реальная благодарность…

  8. crawler говорит:

    тю, конечно блогодарность, ты не представляешь сколько всего у меня непонятным образом пропадало в связке xhtml + css - ie. Оставалось только в бубен стучать, а тут такой совет, который можно применить практически ко всем пропашим элементам.

  9. Q-Zma говорит:

    Тогда ещё один совет, 90% проблем с отображением элементов в IE имеет следующую природу: элемент обладает свойством hasLayout равным -1, это можно исправить, если определить ширину или высоту элемента… Проще всего это сделать установив, персонально для IE, элементу свойство height в значение отличное от auto, например: “height: 1px;”, так как IE неправильно интерпретирует свойство height (он его понимает как min-height, и, если содержимое элемента не помещается в заданную высоту, автоматически увеличивает высоту до необходимой, для отображения всего содержимого элемента). Можно использовать так называемый “star hack” для этого, однако этот хак не работает в IE7, поэтому я обычно использую conditional comments и делаю альтернативный CSS для IE.

  10. crawler говорит:

    спасибо за совет, я встречал в примерах однопиксельную высоту, но не мог понять нафига она там. а если не через цсс а через DOM ставить hasLayout в true?

  11. Q-Zma говорит:

    через DOM нельзя, это read-only свойство, его значение зависит от значения других свойств элемента, MSDN об этом свойстве: hasLayout Property.

  12. crawler говорит:

    только что меня гугл в эту страницу msdn тоже ткнул. не могу понять причем тут writing-mode tb-rl и почему он с права не лево.

  13. Q-Zma говорит:

    да потому что это IE, всё через задницу :)

  14. linarko говорит:

    по поводу по поводу “Усользающие ссылки” на фоне png
    победить можно (во всяком случае в некоторых случаях) через z-index, position: relative и т.д.
    например http://www.tat-armatura.ru/

  15. Q-Zma говорит:

    да уже давно в курсе, всё собираюсь написать статью как с этим бороться, но времени не хватает :(

Комментировать

XHTML: Вы можете использовать следующие тэги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>





двери; стальные двери оптом; МАЗ цены, МАЗ; ultimate poker. pokern! Poker Spielen; . Холодильник. интернет магазин: погружной блендер.