2011-07-12 4 views
0

私はバグを修正するためにのみIE6をターゲットにする必要があります。私は条件付きスタイルシートが良いだろうと知っているが、私はHTML(長い話)ではなくCSSにしかアクセスできない。IE6ターゲティング、*または_良い?

私は、次のいずれかでこれを達成することができますように思え:

*html .mydiv { 
    height: 40px; 
} 

.mydiv { 
    _height: 40px; 
} 

が他よりも一つの解決策より良いですか? ありがとう

答えて

1

2番目のオプションを。 IE6ハックの詳細については、http://www.webdevout.net/css-hacks#in_cssをご覧ください。

私の知る限り、両方ともIE6以下に適用する必要があります。

これに関係なく、選択はコンテキストに依存します。前者は、IE6の修正のグループの方が良いでしょうし、後者は既存のグループの単一のプロパティの方が良いでしょう。

1

2番目のものは別のセレクタを必要としません。これはCSSをより読みやすくし、ビューバイトも保存します。

.mydiv { 
    height: 38px;  
    _height: 40px; 
} 

熟練した目には、それはIE6のハックです。

0

これらはどちらも、ブラウザのバグを悪用するハックであるため、同じように使いづらいことがあります。私はあなたがサーバーにアクセスできるので、ブラウザのユーザーエージェント文字列に応じて異なるスタイルシートを提供する方が少し良いでしょう。

私がそれらのうちの1つを使用しなければならない場合は、最初のもの(セレクタのバグを悪用するもの)を優先します。これは、IE固有の段落の早い段階から明らかですそれを見るために)。それらのどれも明確なコメントなしで使用されるべきではありません。

0

注意: _はie6のみ、 *はie6とie7の両方に対応しています。

また、クリーンなコードの結果のCSSフォーク、このタイプの考えるかもしれません:それはW3C標準に対して適切に検証しないよう_height: 40px;が、非推奨で、

<!--[if le IE 6]> 
<link rel...> 
<![endif]--> 
+0

OPは彼がHTMLを編集することはできないと述べ、条件付きスタイルシートを使用することはできません。 – Sparky

+0

ああ、ありがとう。 (とにかく、両方の解決策を念頭に置いて、その断片を一緒に保つのが良いことだから、編集しないでください)。 – Wimagguc

関連する問題