Фактическая таблица По сравнению с таблицей Div

Это

<table>
    <tr>
        <td>Hello</td>
        <td>World</td>
    </tr>
</table>

Может быть сделан с этим:

<div>
    <div style="display: table-row;">
        <div style="display: table-cell;">Hello</div>
        <div style="display: table-cell;">World</div>
    </div>
</div>

Теперь, есть ли какое-либо различие между этими двумя с точки зрения скорости производительности и/или рендеринга, или они все равно?

54
задан Christopher Rapcewicz 10 December 2013 в 07:16
поделиться

6 ответов

Семантически неверно имитировать таблицы данных с помощью div'ов и вообще не имеет отношения к производительности, поскольку рендеринг происходит мгновенно. Бутылочное горлышко возникает из-за JavaScript или очень длинных страниц с большим количеством вложенных элементов, которые обычно в старые времена представляли собой 100 вложенных таблиц для создания макетов.

Используйте таблицы для того, для чего они предназначены, а div'ы - для того, для чего они предназначены. Свойства display table-row и cell предназначены для использования макетов div больше, чем для создания таблиц для представления данных. Смотрите на них как на макеты столбцов и строк, такие же, как в газете или журнале.

По производительности у вас на пару байт больше, чем в примере с div, lol :)

57
ответ дан 7 November 2019 в 08:01
поделиться

В первом случае я бы не беспокоился о производительности, а больше о семантике. Если это табличные данные, используйте

. Если это просто блочные элементы, представляющие элемент макета, используйте
.

Если вы действительно беспокоитесь о производительности, то ответ будет зависеть от используемого клиента. Например, MSIE известен тем, что медленно отрисовывает таблицы. Вам следует хотя бы протестировать себя в разных браузерах.

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

13
ответ дан 7 November 2019 в 08:01
поделиться

Существует много дискуссий по этому поводу, и div table обычно берет верх из-за своей гибкости в стилизации. Вот одна из ссылок - http://css-discuss.incutio.com/wiki/Tables_Vs_Divs

5
ответ дан 7 November 2019 в 08:01
поделиться

Вам действительно не стоит беспокоиться о производительности при отрисовке таблиц. Даже если он есть, вы не заметите его, пока не появятся сотни (тысячи?) Таблиц для отображения. Используйте то, что вам удобнее.

5
ответ дан 7 November 2019 в 08:01
поделиться

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

3
ответ дан 7 November 2019 в 08:01
поделиться

Если вы представляете табличные данные, вам следует использовать таблицу - она ​​и связанные элементы имеют всю необходимую семантику для представления таблицы данных. В беспорядке div нет ни одного.

1
ответ дан 7 November 2019 в 08:01
поделиться