У меня есть div
с display: table; table-layout: fixed; width: 100%
как ребенок другого div
с position: absolute
. В Chrome, IE и Firefox дочерний div с table-layout: fixed
делает родителя div
разворачиваться до 100%
, но в Safari (6.0.4, OS X 10.8.3) этого не происходит. Вот картинаСафари: таблица-макет: фиксированный в абсолютно позиционированном элементе не растягивает родителя
и А jsbin http://jsbin.com/oqupah/6/edit (убедитесь, чтобы открыть выход в новом окне). Разметка выглядит примерно так:
<div style="position:absolute;border: 1px solid black">
<div style="display:table;table-layout:fixed;width:100%;border:1px solid red;">
<div style="display:table-cell;border:1px solid green">a</div>
</div>
</div>
Это HTML-код и XHTML-версии 1.0. Я заметил, что если я удалю doctype в сафари, он будет вести себя как другие браузеры, но удаление doctype не является вариантом.
На практике у меня был этот код, когда я реализовал абсолютно позиционированное всплывающее окно, в котором содержимое всплывающего окна является div
с display: table; table-layout: fixed; width: 100%
. Я хочу, чтобы всплывающее окно растягивалось на 100%, так что я могу легко предоставить max-width
и что, если бы размер окна был изменен, всплывающее окно уменьшилось бы соответственно.
Итак, я предполагаю, что это ошибка в Safari? Поведение на мобильном сафари одинаково. Есть ли что-то, что я могу добавить, чтобы заставить его вести себя как другие браузеры?
хорошо работает на Safari 5.1.7 –