【发布时间】:2011-09-18 12:32:28
【问题描述】:
<img> 标签应该被包裹在
标签中还是可以不使用
标签直接使用?
【问题讨论】:
-
您是在问 img 标签是否必须包装在另一个标签中?从你的问题看不清楚。
<img> 标签应该被包裹在
标签中还是可以不使用
标签直接使用?
【问题讨论】:
<img> 是一个inline element,因此需要放在块级元素内进行验证。
<p>、<div>、<h1> 或 <li> 之类的就足够了。
内联元素不能直接放在body元素内部;它们必须完全嵌套在块级元素中。
【讨论】:
img 可以在块元素内的任何地方。块元素不需要像<p><img></p> 那样“直接”包装。如果你的页面上有一个包装器 div,我猜一切都在块级元素中。
根据 HTML 4.01 规范,IMG 标签可以出现在任何允许 %inline 元素的元素内,这意味着它不能直接在
标签内,但它很可能在-标签。
编辑: 这意味着 img 标签可以在任何块级标签内(div、p、li、...)
【讨论】:
我还不能评论或投票,但 Younes 的回答是错误的。你不能像这样写一个图像标签:
<img src=""> </img>
此外,查找 HTML 标签允许和不允许的内容的最佳位置,最佳来源是 W3C 网站上提供的实际规范。这是 HTML 4.01 的 img 标签的链接:
http://www.w3.org/TR/html4/struct/objects.html#h-13.2
这里是显示 HTML 4.01 和 XHTML 1.0 之间差异的链接(这就是来源:
http://www.w3.org/TR/xhtml1/#diffs
一般来说,img 可以被大多数容器标签包裹(有些例外,比如 pre,确实存在),但这不是必需的。如果您试图使您的 HTML 语义化,那么大多数情况下,将 img 放在段落标签中是没有意义的,但将其放入 div 中可能是有意义的。
【讨论】:
如果你想让它像块一样有用
.somewhere img
{
display:block;
}
很好。 (如上所述,它需要是块级元素的后代,但显然可以高于任何级别,因此您不需要一直这样做:
<div><img></div>
如果图片周围有链接,则可以对 a 元素执行与上述相同的 display:block 操作。
a.somewhere, a.somewhere img
{
display:block;
}
【讨论】:
<body> 中使用 img (但是您已经注意到这一点,我只是在评论之前没有阅读全部内容)
<body><div id='wrapper'>CONTENT</div></body> 这样的包装 div,那么块级问题几乎没有实际意义,因为您的所有内容都在包装 div 内。