CSS のみのソリューション
Tomas-私はあなたのフィドルを実用的な例に変更しました。標準のブロック レベル要素 (a ) をインライン要素 (タグ)に含めることは無効であるためspan
、タグ内でa を使用するようにコードを変更しました。タグレイアウト (私は を使用) を指定し、その上にaを設定すると、タグの「下」がプッシュされ、IE7 にタグが再びアクティブであると認識されます。以下は、私のフィドルで使用される変更されたコードです。my よりも一般的なクラス名を設定することもできます (IE7 にのみ必要な CSS プロパティについては、IE7 のみをターゲットにすることもできます)。と を変えていると思いますa
div
a
a
inline-block
position:relative
span
z-index: -1
span
a
a
ie7AFix
width
height
画像によって、したがってインラインスタイリングとしてそれらを持っている理由。
HTML
<a href="http://www.google.com/" class="ie7AFix">
<span style="width:222px; height: 150px;">
<img src="http://artax.karlin.mff.cuni.cz/~ttel5535/aviff/photos/scaled/P000137_220x148.jpg" style="width:220px; height: 148px;">
</span>
</a>
CSS
a.ie7AFix {
display: inline-block; /*needs to set hasLayout; zoom: 1, etc.*/
}
.ie7AFix span {
border: solid #666 4px;
display: block;
position: relative;
z-index: -1;
line-height: 0; /*this made it "cross browser" eliminating extra bottom space*/
}
.ie7AFix img { border: 1px solid red; }
line-height
IE7 のみをターゲットにしたくない場合は、 Fiddleを元の質問 (gviswanathan と Tomas の両方による) がそれを要求したという理由だけで、上記のwidth
andを保持し何らかの理由で寸法を設定する必要がなく、単に画像に二重枠を付けようとしている場合は、以下のコメントにあるthirtydotの答えがはるかに簡単です。height
span
span