Несколько злых багов IE
Столкнулся недавно с некоторыми интересными багами в IE.
Всем наверно известно насколько несовершенна и глючна модель CSS-позиционирования IE, но описания этих багов я вроде бы нигде не встречал, хотя целенаправленно таковые и не искал :-).
Вложенное относительное позиционирование
В макете, который я делал, были вложенные блоки с position:relative;, согласно логике блок спозиционированный асолютно (position:absolute;) должен позиционироваться относительно ближайшего родителя, который имеет position:relative;, однако IE почему-то такой логике не следует, а позиционирует блок относительно самого первого родителя, который имеет position:relative;. Побороть этот глюк я так и не смог :-(.
Ускользающие ссылки
Ссылки в абсолютно спозиционированных блоках, фоном которых является загруженное в CSS фильтром AlphaImageLoader PNG-изображение с альфа каналом, кликнуть практически невозможно, потому что они мистическим образом исчезают :-). Этот глюк тоже побороть не удалось.
Постскриптум
Кстати, я немного обновил шапочку, зимой навеяло что-то...
И ещё: никого не раздражают мои приземлённые посты на главной странице раджаки? А то я выпадаю немного из общего формата со своими рабочими записками, и мне кажется, что кому-то они могут показаться неинтересными и никчемными. Если есть таковые, кому это не нравится, то я могу из общей ленты свой блог убрать, я понимаю, что формат не тот ;-).
Update
Как оказалось глюк с исчезающими ссылками можно решить как и большинство проблем с помощью присваивания инлайн-блокам ссылок position:relative;. Вот так то, такой вот он загадочный всеми обожаемый и мне ненавистный Internet Explorer...
Комментарии (15)
Комментировать
двери; стальные двери оптом; МАЗ цены, МАЗ; ultimate poker. pokern! Poker Spielen; . Холодильник. интернет магазин: погружной блендер.

Шапочка классная! Записки не убирай, типа хоть кто-то из нас делом занят ;)
да ладно, делом… просто у других есть дела поважнее наверно :-)
Желаю тебе в новом году меньше работать и больше получать!
Олке того же наверное.
Спасибо, Рост, похоже, что только мне кажется, что посты из моего блога кого-то раздражают :-).
Трудно сказать наверняка. Патамушта это зависит от:
1. Твоего поста (читай: твоего (не)настроения в момент постификации)
2. От настроения читателя.
3. От фазы луны.
4. От Них (только никому не говори!).
спасиба, бальшой(о виликий) за position:relative; как засчиту от исчезаия элементов в ie. теперь продам свой шаманский бубен и куплю пива.
не понятно это типа насмешка или реальная благодарность…
тю, конечно блогодарность, ты не представляешь сколько всего у меня непонятным образом пропадало в связке xhtml + css - ie. Оставалось только в бубен стучать, а тут такой совет, который можно применить практически ко всем пропашим элементам.
Тогда ещё один совет, 90% проблем с отображением элементов в IE имеет следующую природу: элемент обладает свойством hasLayout равным -1, это можно исправить, если определить ширину или высоту элемента… Проще всего это сделать установив, персонально для IE, элементу свойство height в значение отличное от auto, например: “height: 1px;”, так как IE неправильно интерпретирует свойство height (он его понимает как min-height, и, если содержимое элемента не помещается в заданную высоту, автоматически увеличивает высоту до необходимой, для отображения всего содержимого элемента). Можно использовать так называемый “star hack” для этого, однако этот хак не работает в IE7, поэтому я обычно использую conditional comments и делаю альтернативный CSS для IE.
спасибо за совет, я встречал в примерах однопиксельную высоту, но не мог понять нафига она там. а если не через цсс а через DOM ставить hasLayout в true?
через DOM нельзя, это read-only свойство, его значение зависит от значения других свойств элемента, MSDN об этом свойстве: hasLayout Property.
только что меня гугл в эту страницу msdn тоже ткнул. не могу понять причем тут writing-mode tb-rl и почему он с права не лево.
да потому что это IE, всё через задницу :)
по поводу по поводу “Усользающие ссылки” на фоне png
победить можно (во всяком случае в некоторых случаях) через z-index, position: relative и т.д.
например http://www.tat-armatura.ru/
да уже давно в курсе, всё собираюсь написать статью как с этим бороться, но времени не хватает :(