アンカー タグ内に html コードを書いていると、dreamweaver エディタがアンカー タグにバグを表示します。内部タグを使用しないでください。タグの記述/使用に関するルールはありますか?
6 に答える
HTML5 ではブロック要素を insize 要素に入れることができます<a>
。http://dev.w3.org/html5/markup/a.html#a-changesを参照してください
。これは HTML5 の新機能です。他のバージョンの HTML では、違法です。
更新(HTML5をよりよく理解したときに後で追加)
これは、<a>
のコンテンツ モデルがインラインから透過に変更されたためです。つまり、 の中に入れることができるものは、の親<a>
に入れることができるものと同じになりました。<a>
ここでの質問に対する実際の答えは、「場合による」です。
例えば、
<div><a><ul><li></ul></a></div>
完全に有効な HTML5 ですが、
<span><a><ul><li></ul></a></span>
ではありません (span
はインライン要素であるため)。
お役に立てれば!
<ul>
はブロック要素タグであり<a>
、インライン要素タグです。ブロック要素タグは、インライン要素タグ内に入れるべきではなく、その逆 (または他のインライン要素タグ内のインライン要素タグ) に限ってください...
ここから始めて、Google で詳細を確認してください: http://line25.com/articles/10-html-tag-crimes-you-really-shouldnt-commit
一般に、インライン要素は他のインライン要素のみを子として許可します。HTML 4.01 Doctype Definitionを確認すると、これが実際にタグの場合であることがわかり<a>
ます (342 行目)。あなたの IDE は、<ul>
タグ内の<a>
タグを無効としてマークするのは正しいですが、ほとんどのブラウザーは依然として「正しいことを行います」。
あなたはこのようなことをしようとしています:
<a href="google.com">
<ul>
<li>Google.com</li>
<li>Gmail.com</li>
</ul>
</a>
HTML ルールに従って構文的に正しいのは、HTML が表示error
されないためbug
、dreamweaver のように表示されるからです。
次のようなものを播種します。
ただし、両方のリンクの場所は同じgoogle.comです。
私はあなたがこのようなことをしようとしていると思いました:
<ul>
<li><a href="google.com">Google.com</a></li>
<li><a href="stackoverflow.com">stackoverflow.com</a></li>
</ul>
次のようにレンダリングされます。
そして、それはバグなしです..
リンクをクリックするとアンカーの上部にリダイレクトされるため、アンカー リンク内にコードを配置する必要はありません。<a>
http://validator.w3.orgによると、これは HTML5 で有効です
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>title</title>
</head>
<body>
<a href="#"><ul><li>foo</li></ul></a>
</body>
</html>
ただし、HTML4.1 にはありません (厳密)
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
<head>
<title>title</title>
</head>
<body>
<p>
<a href="#"><ul><li>foo</li></ul></a>
</p>
</body>
</html>
しかし、これを行うのは(私にとって)意味的に正しくないと感じます:-)
仕様を見ると、フロー コンテンツが期待される場所でa<ul>
が許可され、 フロー コンテンツとして分類されます。<a>