曾经有人告诉我,html 中的“img”标签必须嵌套在诸如 p 标签之类的元素中。这是真的?还是被误导了?
<p><img src "img/mittromneylittleface.png" alt="drinks" /></p>
曾经有人告诉我,html 中的“img”标签必须嵌套在诸如 p 标签之类的元素中。这是真的?还是被误导了?
<p><img src "img/mittromneylittleface.png" alt="drinks" /></p>
好吧,如果您曾经被告知过,那么您是在 HTML 4 的上下文中被告知的。请在此处查看 HTML 4 Strict 的 DTD 。
您将看到这IMG
是一个%inline
元素,但 HTMLBODY
元素只能包含%block
、SCRIPT
、INS
和DEL
元素:
<!ELEMENT BODY O O (%block;|SCRIPT)+ +(INS|DEL) -- document body -->
<!ENTITY % block
"P | %heading; | %list; | %preformatted; | DL | DIV | NOSCRIPT |
BLOCKQUOTE | FORM | HR | TABLE | FIELDSET | ADDRESS">
所以如果你想验证 HTML 4 strict,你肯定应该包含IMG
里面的 aP
或类似的。在验证器上试一下,你会看到:
文档类型在此处不允许元素“IMG”;缺少“P”、“H1”、“H2”、“H3”、“H4”、“H5”、“H6”、“DIV”、“ADDRESS”开始标签之一
现在,在 HTML 5 中,您可以在img
元素正下方放置一个body
元素。在此处body
查看元素的定义。它说元素的内容模型是:body
流量内容
如果您查找 Flow 内容,您将看到这img
是允许的!