0

私の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検証中にこのエラーを取り除くにはどうすればよいですか?

4

1 に答える 1

2

すべてを検証する場合は、ブロック レベルのリンクを使用するか、子リンクを使用するかを選択する必要があります。両方を持つことはできません。仕様から:

コンテンツ モデル: 透過的ですが、インタラクティブなコンテンツの子孫があってはなりません。

インタラクティブなコンテンツは次のとおりです。

a audio(controls属性が存在する button details embed iframe img場合) (usemap属性が存在する場合) input(type属性が非表示状態でない 場合) keygen label object(usemap属性が存在する場合) select textarea video(controls属性が存在する場合)

したがって、オプションは次のとおりです。

  1. バリデーターを無視してそのままにしておきます (この場合、すべてのブラウザーが同じように動作することを期待する権利はありません)。
  2. まったく別のマークアップ構造を選択する
  3. ブロック レベルまたは子リンクのいずれかを通常の要素とclickイベントに置き換えます
于 2013-03-22T14:03:45.710 に答える