Таблица с шириной: 100% внутри положение: абсолютное в IE7

Пожалуйста, посмотрите на эту скрипку:

http://jsfiddle.net/dyv88/16/

В IE7, если я поставлю width: 100% для таблицы внутри div с position:absolute и неуказанной шириной, таблица займет весь экран.

Во всех более поздних браузерах этого нет.

Может кто-нибудь объяснить?

И как лучше это исправить? Мне просто нужно указать ширину для всех элементов с абсолютным позиционированием? Или есть лучшее решение с помощью какого-то элемента-обертки?

<код>


person wrschneider    schedule 22.03.2012    source источник
comment
Это может быть дубликат: stackoverflow.com/questions/2458731/   -  person wrschneider    schedule 28.12.2012


Ответы (1)


Если вы хотите установить абсолютное положение, оно должно быть относительно первого родителя, который позиционируется. Кажется, что IE7 не знает, какой это родитель, потому что вы его не указали. Выполните position: relative на одном из родителей, чтобы исправить это. Или расположите таблицу относительно.

Я думаю, что указание ширины для элементов с абсолютным позиционированием — это всегда хорошо, поскольку элементы с абсолютным позиционированием удаляются из обычного нижнего края страницы.

демонстрация jsFiddle

person Frank van Wijk    schedule 23.03.2012
comment
Те же результаты с шириной, если абсолютный родитель div также позиционируется. - person wrschneider; 23.03.2012
comment
Вы также должны указать ширину дочернего элемента div на 100%. Это желание, которое вы хотите выполнить? jsfiddle.net/39bnW/1 - person Frank van Wijk; 23.03.2012
comment
принятие ответа из-за ширины комментария к элементам с абсолютным позиционированием - это всегда хорошо - похоже, это проблема. - person wrschneider; 28.09.2012
comment
Дополнительные пояснения: для элементов с неабсолютным позиционированием width=100%, по-видимому, интерпретируется как 100% ближайшего родителя вверх по дереву DOM. position:absolute убирает элемент из потока, поэтому ширина элементов за пределами абсолютного элемента в дереве DOM не применяется ни к чему под абсолютным элементом. Обычно это работает нормально, но в IE7 ширина абсолютного элемента parent просочилась как базовая линия для 100% ширины таблицы (хотя DIV был в порядке). - person wrschneider; 28.09.2012