我曾被告知html中的“img”标签必须嵌套在诸如p标签之类的元素中。这是真的?或被误导?
<p><img src "img/mittromneylittleface.png" alt="drinks" /></p>
答案 0 :(得分:6)
如果你一旦告诉你,你就会在HTML 4的背景下告诉你。看看HTML 4 Strict here的DTD。
您会看到IMG
是%inline
元素,但HTML BODY
元素只能包含%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严格,那么您应该在IMG
或类似内容中加入P
。在验证器上试一试,你会看到:
文档类型不允许元素“IMG”在这里;缺少“P”,“H1”,“H2”,“H3”,“H4”,“H5”,“H6”,“DIV”,“ADDRESS”开始标记
现在,在HTML 5中,可以在img
元素下面有一个body
元素。查看body
元素here的定义。它说body
元素的内容模型是:
流量内容
如果您查找Flow内容,您会看到img
被允许!