2

これを変更したい:

<a href='foo'> 
    <div> Moo </div>
</a>

標準に準拠する必要があります (インライン要素にブロック要素を含めることは想定されていません)。ナビゲーションのためだけに JavaScript を div に配線すると、ハックのように見え、アクセシビリティが低下します。この場合、私の要件は、固定サイズのリンクに 2 セットの境界線が必要であるため、スタイルを適用した後、上記の非準拠コードは完全に機能します。

また、「a { display:block; }」は検証を回避する合法的な方法ですか?

4

5 に答える 5

14

<div>ではなく<span>を使用し、両方の要素にdisplay:blockを設定しないのはなぜですか?

さらに、後者の質問に答えるには、display:block;を追加することは信じていません。アンカーに追加すると、検証に合格します。バリデーターは、ページをユーザーに表示する方法ではなく、(X)HTML ルールに従っているかどうかを確認します。

于 2008-11-10T16:12:11.960 に答える
3

外側の境界をクリック可能にすることが重要でない限り、表示のみを目的としている場合は、div外側に配置することを検討することをお勧めします。aこれのいずれか:

<div class="dbl_border_links"><a href="blah">Blah text</a></div>

またはこれ:

<a class="dbl_border_links" href="blah"><span>Blah text</span></a>

動作し、次のようなものを使用できます。

<style>
  .dbl_border_links, .dbl_border_links>* {
    display: block;
    border: 1px solid;
    padding: 1px;
  }
  .dbl_border_links {
    border-color: red;
  }
  .dbl_border_links > * {
    border-color: blue;
  }
</style>

スタイルを指定します。個人的には、divを含むものを使用しaますが、どちらのアプローチも機能します。

于 2008-11-10T17:27:49.420 に答える
1

第一に、アンカー display:block; を与えることは確かに悪いことではありません。これは、人々が CSS で行う最も一般的なことの 1 つであり、標準に完全に準拠していると言えます。次に、HTML 要素に二重の境界線を表示する方法はいくつかあります。まず、「outline」プロパティを確認してください。

http://webdesign.about.com/od/advancedcss/a/outline_style.htm

確かに、これは最新のブラウザーでのみ機能しますが、アウトラインがページ内のスペースを占有しないため、正常に低下するはずです。リンクのコンテンツが画像の場合、<a> に少しのパディングと背景色、および通常の境界線 (別の色) を与えるだけで、二重境界線の印象を作成できます。または、画像に独自の境界線を付けます。もちろん、元のアイデアに沿って何かを行うこともできますが、HTML を逆にネストし、各要素に異なる境界線を割り当てるだけです。または、リンク内でインライン要素 (<span> や <em> など) を使用して、display:block; に設定することもできます。(はい、これも有効です!)。ハッピーコーディング!

于 2008-11-11T01:44:54.800 に答える
1

私は通常、<a >タグはこの目的のための特別なケースであると考えています。これは、ほぼすべてのものに適用できるはずです。これは、ハイパーテキストの全体的なポイントの後にあります (<tr >良い例が思い浮かびます)。しかし、バリデーターをどこかに渡す必要がある場合は、理解しています。

div にJavaScriptonclickハンドラを使用して、アンカーを完全に削除していただけますか?

于 2008-11-10T16:16:37.177 に答える
0

私があなたの意図を正しく理解していれば、すでに述べたように div をアンカーの外側に配置し、同じプレゼンテーションを得るためにアンカーを作成する必要がありwidth:100%;height:100%ます。クロスブラウザのマイレージは異なる場合があります。また、divを完全にダンプしてアンカーを与えることもできますdisplay:block;

あなたは正確に何をしようとしていますか?

于 2008-11-11T02:13:17.380 に答える