Проблемы с position:absolute для элемента при печати - IE8

У меня возникла проблема с абсолютным позиционированием элементов в IE8 при печати. У меня есть таблица стилей печати, и в ней я пытаюсь разместить элемент в правом верхнем углу первой печатной страницы.

Проблема в том, что когда элемент помещается на вторую страницу, IE8 считает, что верхняя часть страницы находится на второй странице, а не на первой.

Это в моем print.css:

.myElem{
  position:absolute;
  top:0;
  right:0;
  width:230px;
}

Во всех других браузерах (Opera 11, Firefox 3.6, Safari 5, Chrome 11, IE9, режим совместимости с IE9, режим совместимости с IE8) .myElem-div будет напечатан на первой странице в правом верхнем углу. Но в IE8 div печатается в правом верхнем углу второй страницы. Как было сказано ранее, div находится «на второй странице печати» в DOM. Я не могу переместить элемент раньше в своей модели DOM, так что это не решение.

На самом деле это та же проблема, что описана в комментариях других пользователей здесь: http://msdn.microsoft.com/en-us/library/ms533005%28v=vs.85%29.aspx#CommunityContent

У кого-нибудь есть решение?

Заранее большое спасибо!

С уважением, Ким


person Kim Andersen    schedule 23.05.2011    source источник
comment
попробуйте удалить тег типа документа страницы.   -  person MUS    schedule 23.05.2011
comment
Хе-хе, это может сработать, но это испортит все мои стили на странице. Если только в печатной версии нельзя удалить тип документа, это, к сожалению, не решение.   -  person Kim Andersen    schedule 23.05.2011


Ответы (1)


Два возможных обходных пути... на самом деле не исправления.

  1. Создавайте удобные для печати версии страниц, не требующие doctype, что, вероятно, приводит к зависанию IE8. Конечно, это большая работа... если только у вас не слишком много страниц или вы можете создавать эти страницы динамически, используя технологии на стороне сервера.

  2. Создайте таблицу стилей только для IE8, используя условные комментарии, пример <!-- [if IE 8]> <link rel="stylesheet" type="text/css" href="ie-8.0.css" /> <![endif]-->, и используйте эту таблицу, чтобы полностью удалить div с display:none;, предполагая, что вы можете обойтись без него.

person Jason Gennaro    schedule 24.05.2011
comment
Прости Джейсон. Это не может быть и моим решением. Мне нужен элемент на странице, а версию без типа документа, к сожалению, сделать нельзя. - person Kim Andersen; 24.05.2011