问题 在HTML中生成锚标记()的子项是否合法?


在HTML中拥有锚标记的子项是否合法?举个例子:

 <a>
     <font>Example</font>
     <img src="example.jpg"/>
 </a>

它在浏览器中工作正常。但它有效吗?请帮忙


4690
2017-08-17 13:55


起源

是的,这是合法的。 HTML警察不会试图逮捕你。 - Austin Brunkhorst
过去有些元素是合法的,有些则不合法。例如,您无法在块标记(div,ul,p等)中放置块元素。内联元素是可接受的(span,font,img,em,strong等)。但显然html5改变了这一切! - cale_b
<font>很老的学校,顺便说一下。 - fred02138
@cale_b:是的,HTML5确实改变了它(无论如何都要与浏览器的实际内容一致), 根据 在上下文中 a 使用标签。 a 已变得“透明”,这基本上意味着它采用其容器的内容模型。所以上面的内容是有效的 提供 有一个是有效的 <font> 和 <img> 在那个位置。 (当然,是的 决不 有效的 <font> 从HTML5开始随处标记。) - T.J. Crowder
谢谢大家的回复 - rosemary


答案:


是的 - 随着它的出现更是如此 HTML 5(来自规范)

虽然以前版本的HTML将a元素限制为仅包含措辞内容(实质上,以前的版本中称为“内联”内容),但a元素现在是透明的;也就是说,现在允许a元素的实例也包含 流动内容 (基本上,以前的版本称为“块”内容) - 如果a元素的该实例的父元素是允许包含流内容的元素。


15
2017-08-17 13:59



Anks Adrift。我想知道子元素的css定位如何影响父锚标记? - rosemary


是的,所有版本的HTML都允许使用一些元素 a 元件。允许的元素集取决于HTML版本。发布的代码是有效的HTML 3.2和HTML 4.01,就元素嵌套而言,尽管如此 img 由于缺乏,元素无效HTML 4.01 alt 属性。


1
2017-08-17 16:10