0

重複の可能性:
アンカー内に div を配置することは正しいですか?

複雑な要素 (画像、段落、その他のものを含む) にリンクを設定したい。私はそれが機能することを知っていますが、<div>要素の中に要素を入れても大丈夫<a>ですか?

4

3 に答える 3

6

はいといいえ。

完全なHTMLまたはXHTMLの推奨事項では許可されていません。

HTML 5ドラフトでは許可されていますがdisplay: block、一部のブラウザーでアンカーを機能させるには、アンカーを明示的に設定するなどの操作が必要になる場合があります。他の人が単にそれをサポートしていないことに気付くかもしれません(これに対するブラウザのサポートを示すリファレンスにリンクできるようにしたいのですが、知らない場合はコメントしてください)。

とはいえ、大きなクリックターゲットを設定すると便利ですが、一部のブラウザ(特にスクリーンリーダー)の「リンクをすくい取るモード」に適したアプローチではありません。コンテンツで通常のリンクを使用し、要素全体のクリックに反応するようにJavaScriptを適用する方がよい場合があります。

于 2012-05-02T13:10:46.403 に答える
1

XHTML1.0 および HTML4.01 の場合: いいえ。aは、他のインライン要素のみを含むことができるインライン要素です (ただし、別の は含みませんa)。

HTML5 の場合: はい、許可されています。ただし、リンクに何百もの文字が含まれる理由を考えてみてください。
これは SEO にとっては悪いことであり (希薄化だと思います)、障害のある多くのユーザーにとっては悪いことです ( 「ヘイ、スクリーン リーダー、このリンクの機能を教えてください」-「このリンクを 30 分ほど読み上げさせてください」 )。使いやすさ。

別の解決策は、div または意味のあるテキストの見出しにリンクを配置することです。次に、JS で div を最初にやりたかったように動作させます。次に、支援技術 (スクリーン リーダーなど) を使用しているユーザー、キーボード ユーザー (リンクをタブで移動できる)、および JS を使用している視力のあるマウス ユーザーに対して機能します。

于 2012-05-02T13:12:39.290 に答える
0

いいえ、IE7 以下を気にしない限り。display:block に設定しても、リンクは IE7 では正しく機能しません。

于 2012-05-02T13:12:07.787 に答える