2011-06-20 9 views
0

例で透明の背景にアンチエイリアスされていません。http://jsfiddle.net/NBWmU/1/テキストはIE7/8

私はできるだけ多くのブラウザでの私のdivの背景を透明にするには、以下のCSSを使用しています:

background: rgb(255, 255, 255) transparent; 
background: rgba(255, 255, 255, 0.6); 
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#99FFFFFF, endColorstr=#99FFFFFF); 
-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#99FFFFFF, endColorstr=#99FFFFFF)"; 

何らかの理由でIE8のテキストが透明なdivの上に鮮明でピクセル化されて表示され、普通の背景のdivの外にある同じテキストとはかなり異なって見えます。他のブラウザではまだテストしていません。

誰もがテキストをどこでも同じように表示する方法を知っていますか?私は透明なPNGを使用しようとしましたが、これはいくつかの他のレンダリングの問題を引き起こし、私は別の方法があることを望んでいます。

答えて

2

はい:-ms-フィルターとフィルターを使用しないでください:プログラムID:DXImageTransformなど

それは代替テキストレンダラーを使用させるフィルタの実装にバグがあります。一貫性を持たせる唯一の方法は、テキストが含まれているときには使用しないでください(すべてのテキストが同じように醜いピクセル化されるように)。

私が通常行っていることは、rgba()の色、不透明度などの透明度のために標準のCSSのみを使用します。そして、IE固有のCSSでは、背景/テキストの色を、本当の透明性。

イメージの場合、透明なイメージスプライトのIE固有のコピーを作成します。透明なPNGの場合、ie7以上で同じ問題が発生するため、通常は完全に不透明になります(ie透明ではありません)。

+0

ありがとうございます。クロスブラウザの透過性は厄介な問題です。私のページの背景はイメージで、テキストに合わせるために透明なdivが必要です(背景イメージを編集するだけではできません)。私が以前にやっていたことは、透明なdiv背景を小さなタイルの平らな透明なpngに設定することでした(これはアンチエイリアスの問題を避けるように思われました)が、これによって時々画像全体が空白に見えることがありました。それが助けるかもしれないと考えることができる何か他にありますか? – Flash

+0

古代のブラウザをサポートすることが重要な場合は、透明な色を含む空のdivの上にテキストを配置することができます(テキストを含む要素は透明なものの逸脱であってはいけません)。残念ながら、これはコンテンツに合わせてサイズを変更するdivに頼ることができず、スタックオーバーオーダー(z-index)はIEの古いバージョンでは非常にバグが多いので、他の多くの複雑な問題を引き起こします。半透明の背景が本当に価値がある場合は、費用対効果の面でいくつかの配慮が必要です。がんばろう! :) –