我和一位同事发生争执,但无法找到证据来证明我们中的任何一方是正确的。我之前看过给定标签的有效元素列表,但是再也找不到了。有人能指出我正确的方向吗?
我对XHTML感到好奇,但是对于DIV标记在HTML 4.01中的TD标记内是否有效存在分歧。
答案 0 :(得分:14)
是。根据HTML 4.01 DTD,td
元素可以包含块级元素和/或内联级元素。
DTD的相关行:
<!ELEMENT (TH|TD) - O (%flow;)* -- table header cell, table data cell-->
此行基本上定义了th
和td
元素,并声明它们可能包含块和内联元素(*
)的任意组合(%flow;
)。< / p>
有关td
的更多信息:http://www.w3.org/TR/html401/struct/tables.html#edef-TD
答案 1 :(得分:5)
是的,div
中的td
完全有效。 HTML5规范草案中的elements list是针对此类问题的有用参考,但基本上,td
的有效子元素是 flow 元素,div
是一个流程元素。
以上参考文献适用于HTML5,这是前进的方向(它既编码了已经存在的东西,又带来了前进的东西;主要的浏览器供应商都参与其中)。对于HTML 4.01,TD reerence是here,但我不得不承认4.01我可能会做的是问W3C validator,这对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>
答案 2 :(得分:1)
是的,你可以在td中放置一个div。我一直这样做。