7
<li class="vcard">
  <a class="url" href="/about/us/">
    <img class="photo" alt="some" src="/img/nicething.png">
    <h3>hello</h3>
  </a>
  <p class="role meta">Something here</p>
</li>

私はこのコードを見て、検証しましたが、w3c HTML5 検証で VALID を返します。

h3の中に入れることができなかったのは大変ですanchor

これが有効になったようですdisplay:block;

4

3 に答える 3

18

HTML5 仕様を見ると、<a>タグに次のセクションがあります。

要素は、aインタラクティブなコンテンツ (ボタンや他のリンクなど) がない限り、段落、リスト、表など全体、さらにはセクション全体を囲むことができます。

ブロックレベルのタグをインラインレベルのタグ内に配置することは無効であると述べているHTML4 仕様は見つかりませんが、どこかで読んだことは覚えています。

于 2012-09-30T08:20:45.103 に答える
7

要素の定義にaは「透過的な」コンテンツ モデルがあるため、HTML5 で有効であると宣言されています。そのため、要素が許可されるaコンテキストに表示されるh3場合、そのa要素は要素を含むことができh3ます。

aこれは、要素が「インライン」コンテンツのみを持つことが許可されている (たとえば、見出しがない) HTML 4.01 仕様から逸脱しています。以前の HTML 仕様はすべて同じ立場をとっています。

h3ただし、ブラウザは実際には内にネストすることaもできるため、HTML5 は事実上、ブラウザの慣行を反映しているだけです。ただし、機能的な違いがあることに注意してください。これは、見出しテキストの右側にあるポイントをクリックすることで確認できます。(理由は、h3内にネストaすると、リンクが使用可能な幅いっぱいになり、テキストを超えて拡張されるためです。)

ここでは CSS 設定は重要ではありません。HTML の妥当性はそれらに依存せず、CSS の存在にも依存しません。

于 2012-09-30T12:50:30.597 に答える
0

こんにちは

ここに何か

display:block を vcard クラスに追加する必要があります

その後、有効な w3 ドキュメントが作成されます。これは、W3 標準ではインライン要素 (a) 内にブロック要素 (h3) を含めることができないため、ブロック要素のコンテナーであるタグをブロック要素に変換する必要があるためです。インライン要素の挿入

于 2012-09-30T10:50:16.563 に答える