4

次のサンプルフォームコードとCSSスタイルシートが与えられます

<div class="Center_300 ">
 <button id="KeaneDelegate" runat="server" class="button_red2" causesvalidation="false"><span>Keane's delegate view</span></button> 
<br />
<br />
<a class="button_red2"> <span>Keane's delegate view</span></a> 
</div>

css

.button_red2 
{
background:url('../../images/button_red_left.gif') no-repeat left top; 
display:inline;  
float:left; 
font-size:12px;  
font-weight:bold; 
line-height:16px; 
height:21px; 
padding-left:9px; 
text-decoration:none;
border-style:none; 
color:White;
 }
.button_red2  span
{   background:transparent url('../../images/button_red.gif') no-repeat top right; 
padding:3px 10px 2px 0px;
border-style:none;
display:block;
}

.Center_300 { width:300px; margin:0 auto } 

IE8の互換モード(IE6)でこれを表示すると、ボタンは正しくレンダリングされますが、テキストの左右に「空白」のスペースが表示されます。ハイパーリンクは正しくレンダリングされます ここに画像の説明を入力してください

ネイティブIE8モードに戻すと、ボタンはハイパーリンクと同じくらい長く正しくレンダリングされますが、引き戸にわずかなずれがあり、右側の部分が1ピクセル下にシャントされているように見えます ここに画像の説明を入力してください

次に、ブロックの配置を削除してパディングを調整すると、完全にレンダリングされます(ただし、ハイパーリンクは表示されなくなります)

.button_red2  span
{   background:transparent url('../../images/button_red.gif') no-repeat top right; 
    padding:3px 10px 3px 0px;
    border-style:none;
 }

ここに画像の説明を入力してください

しかし、それをIE6モードに戻すと、さらに醜くなります

ここに画像の説明を入力してください

フォームのハイパーリンクではなく、ボタンを使用しようとしていますが、配信されたCSSスタイルから、さまざまなIEバージョン間でハイパーリンクのみが完全にレンダリングされます。

ボタンのIE6レンダリングに余分なスペースがあるのはなぜですか?IE8モードに戻ったときに、ピクセルがずれて表示されるのはなぜですか。また、どのように並べ替えることができますか?それとも解決できないのですか?

引き戸の2つのgifの下。 button_red_left ここに画像の説明を入力してください

4

1 に答える 1

1

IEのボタンの幅が広すぎることが原因だと思います。この記事を見てください:http://latrine.dgx.cz/the-stretched-buttons-problem-in-ie

于 2011-06-07T08:53:40.783 に答える