Проблемы с отображением в браузере таблиц HTML - PullRequest
0 голосов
/ 21 октября 2019

а. Рассмотрим эту разметку:

<table><th></th></table>

Когда я осматриваю страницу, я получаю:

<body><table><tbody><tr><th></th></tr></tbody></table>

b. Рассмотрим эту разметку:

<table><span role="columnheader"></span></table>

Когда я проверяю страницу, я получаю:

<body><span role="columnheader"></span><table></table>
  • Проверено на chrome, ff и explorer (11).

Как это может быть?

Я запустил эту ситуацию, пытаясь проверить parentNode, и не получил «таблицы» в обоих сценариях, как ожидалось.

Может кто-нибудь, пожалуйста, затените это поведение?

1 Ответ

2 голосов
/ 21 октября 2019

Оба набора HTML недопустимы, и браузер выполняет восстановление после ошибок. Правила восстановления (точнее, общие правила синтаксического анализа ) для диапазона внутри элемента таблицы отличаются от правил восстановления для элемента th внутри элемента таблицы.

(Для упрощенияэтот элемент должен быть внутри tr внутри tbody / tfoot / thead внутри таблицы… поэтому недостающие элементы добавляются, но диапазон вообще не должен находиться внутри таблицы, поэтому он выбрасывается).

Вы должны просто написать правильный HTML с самого начала.

...