Моя проблема лежит исключительно на плечах Safari версии 9.1.2 (11601.7.7). Другие браузеры и устройства, с которыми у меня не возникло проблем.
В адаптивных целях мне нравится конвертировать все таблицыэлементы от горизонтального макета до вертикального макета, и используйте атрибут data-label, чтобы сохранить метки заголовка от строки таблицы к строке таблицы, так как таблица перестраивается сама при уменьшении области просмотра.
Для всех таблиц:Я установлю глобальное правило CSS: макет таблицы: исправлено;
HTML:
<table width="100%" class="table">
<thead>
<tr>
<th>Name</th>
<th>Date</th>
<th>Place</th>
</tr>
</thead>
<tbody>
<tr>
<td data-label="Name">John Doe</td>
<td data-label="Date">12/31/2018</td>
<td data-label="Place">Milwaukee, WI</td>
</tr>
<tr>
<td data-label="Name">Jane Smith</td>
<td data-label="Date">10/17/2018</td>
<td data-label="Place">Chicago, IL</td>
</tr>
<tr>
<td data-label="Name">Bob Jones</td>
<td data-label="Date">11/03/2018</td>
<td data-label="Place">Cleveland, OH</td>
</tr>
</tbody>
</table>
CSS:
.table, table {
table-layout: fixed;
}
@media screen and (max-width:991px){
.table thead {
display: none;
}
.table td {
display: block;
width: 100%;
padding: 5px 5px 5px 120px;
position: relative;
}
.table td:before {
content: attr(data-label);
position: absolute;
top: 0;
left: 0;
padding: 5px;
text-align: right;
}
}
По большей части, это работает для всех браузеров, которые я видел, но сейчас у меня возникла серьезная проблема с Safari, не признающим это.Даже когда я захожу в Инструменты разработчика Safari и вручную заставляю выводить td из ячейки таблицы в блок, изменений не происходит, ПЛЮС, когда я переключаюсь с Styles - Rules на Styles Computed, он все равно читает display: table-cell.
Я, по жизни, не могу понять, ПОЧЕМУ Safari не позволяет изменять отображение, даже когда я делаю это вручную.