У меня проблема, которая, кажется, затрагивает только Safari и Chrome (также известный как WebKit). У меня есть наложение, которое заполняет весь экран, и две строки таблицы, которые я хотел бы отобразить поверх наложения. Все остальное на странице должно отображаться под оверлеем.
Проблема в том, что Safari отображает только одну из строк таблицы сверху. Firefox правильно отображает оба сверху. Кажется, я не могу найти основную причину этой проблемы в Safari, но я знаю, что я не единственный, у кого была «проблема позиционирования Safari, которая работает в Firefox».
Что я должен сделать, чтобы заставить это работать и в Firefox и в Safari / Chrome?
<body>
<style>
.ui-widget-overlay {
display: block;
position: absolute;
width: 100%;
height: 100%;
background: #000;
opacity: 0.5;
}
</style>
<table>
<tr style="position:relative; z-index:1000;">
<td>Displays on top in Firefox only</td>
</tr>
<tr>
<td>
<div style="position:relative; z-index:1000;">
Displays on top in both Safari and Firefox
</div>
<span class="ui-widget-overlay"></span>
</td>
</tr>
<tr>
<td>Displays below overlay</td>
</tr>
<tr>
<td>Displays below overlay</td>
</tr>
<tr>
<td>Displays below overlay</td>
</tr>
</table>
</body>
Обновление: Видимо, приведенный выше пример кода отображается правильно. Однако это всего лишь образец. Это не настоящий код. HTML-код идентичен, но я динамически применяю стили с помощью JavaScript.
Может, проблема в jQuery? Я использую эту строку, чтобы добавить позиционирование к первой строке таблицы:
$(firstTableRow).css('position', 'relative').css('z-index', '1000');
В Firefox (с использованием Firebug) я вижу, что стиль применяется, однако в Safari (с использованием Web Inspector) говорится, что «вычисляемый стиль» этой строки таблицы статически позиционируется с z-индексом auto, хотя стили «атрибут стиля» говорят, что позиция относительна, а z-индекс равен 1000.