错误:看到一个开始标记,但同一类型的元素已经打开

时间:2013-03-22 08:42:45

标签: html5 validation

我的doctype是 html5 。我正在验证这个HTML:

<a class="article-link-block" href="http://localhost/article/231">

    <img src="http://localhost/images/article-image.jpg">

    <div class="article-info">
        <a class="title" href="http://localhost/article/231">Title of the article</a>
        <a class="category" href="http://localhost/category/5">Category</a>
        <div class="views">24x</div>
        <div class="date">13.3.2013</div>
    </div>

</a>

我收到此错误:

Error: An a start tag seen but an element of the same type was already open.

我希望整个div成为一个锚标记( article-link-block ),并在其中包含另一个锚标记到类别,用户等和其他div(上面的代码)简化为仅文章和类别链接。)

如何在html验证期间摆脱此错误?

1 个答案:

答案 0 :(得分:2)

如果您希望全部验证,则必须选择是否需要块级链接或子链接。你不能两者兼得。来自the spec

  

内容模型:透明,但必须没有互动内容后代。

Interactive content是:

  

a audio(如果存在controls属性)button details embed iframe img (如果存在usemap属性)input(如果type属性未处于隐藏状态)keygen label object(如果存在usemap属性)select textarea video(如果存在controls属性)

所以你的选择是:

  1. 忽略验证器并保持原样(在这种情况下,您没有权利期望所有浏览器以相同的方式运行)
  2. 完全选择其他标记结构
  3. 将块级别或子链接替换为普通元素和click事件