Существует общее мнение, что следует избегать использования таблиц для разметки в HTML а>. Но из каждого правила есть исключения. Я разрабатываю SPA (одностраничное приложение) со страницами, напоминающими используемый макет с помощью настольного приложения.
Очевидно, что HTML не очень хорошо подходит для таких типов страниц, но у меня нет другого выбора. Реализация этих макетов с помощью DIV — это сущий ад, требующий сочетания приемов CSS, жестко запрограммированных значений и даже вычислений JS для событий изменения размера. Недавно я спросил этот вопрос о реализации этих макетов с использованием сетки.
Но затем я остановился, чтобы еще раз подумать, может ли быть уместна табличная компоновка. Типичная критика, похоже, не применима к уникальному случаю SPA:
Отделение контента от макета. Поскольку SPA на самом деле не является контентом (это просто скелет с заполненными данными AJAX), этот аргумент не применяется. Это просто интерфейс; Я не ожидаю, что Google проиндексирует его.
Таблицы менее удобны в сопровождении — не в этом случае. CSS-ад, через который вам нужно пройти, чтобы реализовать это с помощью DIV, требует гораздо более высоких затрат на обслуживание.
Таблицы рендерятся медленнее. Конечно, но сложный макет, который мы будем создавать с использованием альтернатив, потребует еще больше вычислений для рендеринга, чем таблицы. Черт возьми, мы обычно компенсируем врожденные ограничения, используя события изменения размера JS. Для браузера было бы намного эффективнее сделать это внутри механизма рендеринга.
В свете этих аргументов уместны ли макеты на основе таблиц в конкретном случае SPA, или я не учел некоторые другие важные факторы? Есть ли еще лучший вариант?