HTML W3C Valid Elements - Действует ли DIV в TD?

У меня есть аргумент с коллегой, но я не могу найти доказательства, чтобы доказать, что кто-то из нас прав. Я видел список допустимых элементов для заданных тегов раньше, но просто не могу найти его снова. Может ли кто-нибудь указать мне в правильном направлении?

Мне интересно узнать о XHTML, но несогласие в особенности касается того, является ли тег DIV допустимым в теге TD в HTML 4.01.

Ответы

Ответ 1

Да. Согласно DTD HTML 4.01, элемент td может содержать элементы уровня блока и/или элементы встроенного уровня.

Соответствующая строка DTD:

<!ELEMENT (TH|TD)  - O (%flow;)*       -- table header cell, table data cell-->

Эта строка в основном определяет элементы th и td и заявляет, что они могут содержать любую комбинацию (*) блоков и встроенных элементов (%flow;).

Дополнительная информация о td: http://www.w3.org/TR/html401/struct/tables.html#edef-TD

Ответ 2

Да, div в пределах td отлично действует. Список в проекте спецификации HTML5 является полезной ссылкой для такого рода вопросов, но в основном, действительные дочерние элементы td являются элементами потока, а div является элементом потока.

Вышеуказанные ссылки относятся к HTML5, это путь вперед (он кодирует то, что уже есть в дикой природе, и приносит вещи вперед, все основные поставщики браузеров задействованы). Для HTML 4.01, TD reerence здесь, но я должен признать, что 4.01, что я, вероятно, сделаю, это спросить Валидатор W3C, который достаточно прочен для 4.01 (и еще не для HTML5). И валидатор говорит... да, просто отлично. Пример данных:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head><title>Hi</title></head>
<body>
<table><tbody><tr><td><div>x</div></td></tr></tbody></table>
</body>
</html>

Ответ 3

Да, вы можете поместить div в td. Я делаю это все время.