span
ネストしてa
タグ付けしたい。するべきか
<span>
中に入れる<a>
<a>
中に入れる<span>
- それは問題ではありません ?
3 - 関係ありません。
しかし、タグのコンテンツの一部のみの場合、つまり<span>
内側のみを使用する傾向があります。<a>
<a href="#">some <span class="red">text</span></a>
それよりも:
<a href="#"><span class="red">some text</span></a>
明らかに次のようになります。
<a href="#" class="red">some text</a>
(少なくとも HTML 4.01 および XHTML 1.0 標準では) a 内または a 内のいずれかをネストすることは完全に<span>
有効です。<a>
<a>
<span>
それを証明するために、 W3C MarkUp Validation Serviceでいつでも確認できます。
私は検証しようとしました:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Title</title>
</head>
<body>
<p>
<a href="http://www.google.com/"><span>Google</span></a>
</p>
</body>
</html>
また、上記と同じですが、<a>
内部では<span>
すなわち
<span><a href="http://www.google.com">Google</a></span>
HTML 4.01 と XHTML 1.0 の両方の doctype で、両方とも検証に合格しました!
注意すべき唯一のことは、正しい順序でタグを閉じるようにすることです。そのため、 で開始してから を開始する場合は<span>
、<a>
タグを閉じてから を閉じてください<a>
。<span>
逆の場合も同様です。
それは問題ではありません - それらは両方とも互いの内部で許可されています.
それは、何をマークアップするかによって異なります。
<a>
ます<span>
。<span>
リンク内の何かをマークアップしたい場合は、<a>
SPAN は一般的なインラインコンテナーです。どちらもインライン要素であるため、 ana
が内部にあるspan
かspan
内部にあるかは問題ではありません。a
論理的に正しいと思われることは何でも自由に行ってください。
それは、スパンが何のためにあるかによって異なります。リンクであるという事実ではなく、リンクのテキストを参照している場合は、#1 を選択します。スパンがリンク全体を指す場合は、#2 を選択します。スパンが何を表しているのかを説明しない限り、それ以上の答えはありません。どちらもインライン要素であり、構文的に任意の順序でネストできます。
たとえば、並べ替えのアイコン フォントを使用している場合は問題になる可能性があります。私は今これを持っていました:
<span class="fa fa-print fa-3x"><a href="some_link"></a></span>
通常、A の内側にスパンを配置しますが、それを交換するまでスタイリングは有効になりませんでした。
個人的には、Web 開発者として、あるセクションに背景を適用するなど、リンク テキストのセクションを強調表示しようとする場合にのみ、アンカー タグ内にスパンを配置します。
どちらも機能しますが、個人的にはオプション 2 を好むので、スパンはリンクの「周り」にあります。
意味的には、単一の要素のコンテナである方が理にかなっていると思います。それらをネストする必要がある場合は、複数の要素が外側の要素の中にあることを示唆しています。