У меня проблема, которая влияет только на Safari и Chrome (также известный как WebKit). У меня есть наложение, которое заполняет весь экран, и две строки таблицы, которые я хотел бы разместить поверх наложения. Все остальное на странице должно отображаться под оверлеем.
Проблема в том, что Safari отображает только одну из строк таблицы вверху. Firefox правильно отображает оба сверху. Я не могу найти основную причину этой проблемы в Safari, но я знаю, что m не единственный, у кого была «проблема с позиционированием 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, даже если стили" style attribute "говорят, что позиция является относительной, а z-index равен 1000.