目次
IE7 および IE8 で PNG 画像の背景が黒くなるバグの解決策:
1. 画像の透明度を直接変更するのではなく、画像のコンテナを設定してコンテナの透明度を変更します
2. このコンテナに背景色を追加します
3 にズームを追加します。コンテナ
zoom: 1 何をするものですか?なぜ IE にこのようなバグがあるのでしょうか?
ホームページ ウェブフロントエンド htmlチュートリアル jquery が ie8 で PNG の不透明度を変更すると、黒いエッジが表示されます。ie6_html/css_WEB-ITnose での PNG 透明度の解決策

jquery が ie8 で PNG の不透明度を変更すると、黒いエッジが表示されます。ie6_html/css_WEB-ITnose での PNG 透明度の解決策

Jun 24, 2016 am 11:41 AM

現在、インターネットでは Web ページの効果に対する要件がますます高まっており、PNG 画像を使用することは避けられません。PNG 画像は PNG8、PNG24、PNG32 のいくつかの形式に分かれており、その中で最も一般的に使用されている形式も同様です。適度な表示効果とサイズを備え、半透明、透明度、および非常に豊富な色をサポートしています。ただし、我が国のほとんどの国民が IE シリーズまたは IE を中心としたブラウザを使用しているため、また WINDOWS XP の市場が比較的大きいためです。国内ではシェアが高く、多くの人が依然として XP、IE7、IE8 およびその他のブラウザを使用していますが、これらのブラウザの PNG サポートには多かれ少なかれギャップがあり、IE6 は PNG をまったくサポートしておらず、IE7 IE8 は PNG を不完全にサポートしています。 IE7 IE8 での画像の透明度の変更はサポートされていません。透明な領域に黒い境界線が表示されます。これは、美しい外観を必要とするページでは受け入れられません。いくつか調べた結果、PNG を背景として使用するには、Microsoft を使用する必要があることがわかりました。画像をロードするための独自のフィルターにより、IE6 が PNG をサポートしていない問題を解決できます。また、IE7 で JQUERY アニメーションの透明効果を使用する場合の黒いエッジの問題も解決できます。 IE8. 以下のような実際の画像を含むコードがあります:

<script>function correctPNG() {    var arVersion = navigator.appVersion.split("MSIE")    var version = parseFloat(arVersion[1])    if ((version >= 5.5) && (document.body.filters)) {        var lee_i = 0;        var docimgs=document.images;        for (var j = 0; j < docimgs.length; j++) {            var img = docimgs[j]            var imgName = img.src.toUpperCase();            if (imgName.substring(imgName.length - 3, imgName.length) == "PNG" && !img.getAttribute("usemap")) {                lee_i++;                var SpanID = img.id || 'ra_png_' + lee_i.toString();                var imgData = new Image();                imgData.proData = SpanID;                imgData.onload = function () {                    $("#" + this.proData).css("width", this.width + "px").css("height", this.height + "px");                }                imgData.src = img.src;                var imgID = "id='" + SpanID + "' ";                var imgClass = (img.className) ? "class='" + img.className + "' " : ""                var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' "                var imgStyle = "display:inline-block;" + img.style.cssText                if (img.align == "left") imgStyle = "float:left;" + imgStyle                if (img.align == "right") imgStyle = "float:right;" + imgStyle                if (img.parentElement.href) imgStyle = "cursor:hand;" + imgStyle                var strNewHTML = "<span " + imgID + imgClass + imgTitle             + " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";"             + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"             + "(src=\'" + img.src + "\', sizingMethod='scale');\"></span>"                img.outerHTML = strNewHTML;                j = j - 1;            }        }    }}//判断是否为IE8及以下浏览器,其实除了这三个浏览器不支持addEventListener,其它浏览器都没问题if (typeof window.addEventListener == "undefined" && typeof document.getElementsByClassName == "undefined") {    window.attachEvent("onload", correctPNG);}</script>
ログイン後にコピー

in ページの /body の終了タグの前に、まず jquery1.8 クラス ライブラリを参照してから、上記のコードを追加します。 表示には問題ありません。 IE6 7 8 では PNG24。アニメーションを実行したり、画像を取得する必要がある場合、IE 6 7 8 では見つからないことがわかります。PNG 画像を見つけた場合、またはその位置や透明度を変更しても応答がないことがわかった場合その理由は、correctPNG がページ上のすべての PNG の IMG タグを SPAN タグに置き換えてから、SPAN タグに filter: progid:DXImageTransform.Microsoft を使用して PNG 画像をロードするためです。そのため、画像を含めることをお勧めします。 DIV 内では IMG タグを 1 つだけ許可し、DIV 上で位置または透明度関連の操作を実行します。たとえば、

<div id='test'><img src='xxxx.png'/></div><script>$("#test").animate({opacity:0.2,marginLeft:500},1000,function(){alert('run complete');});</script>
ログイン後にコピー

また、この画像の透明度や移動に加えて、この場合、幅と高さも変更する必要があります。次の方法をお勧めします。

<div id='test'><img src='xxxx.png'/></div><script>$($("#test span")[0]||$("#test img")[0]).animate({opacity:0.2,marginLeft:500,width:'500px',height:'500px'},1000,function(){alert('run complete');});</script>
ログイン後にコピー

バグ: IE7 および IE8 で画像を動的に変更する場合 たとえば、PNG 画像の透明度を変更します。フェードインを適用して画像の透明度を25%に調整すると、pngの透明情報が消えてしまうという非常に奇妙なバグが発生します。すごく汚い黒色になってしまいました!

IE7 および IE8 で PNG 画像の背景が黒くなるバグの解決策:

1. 画像の透明度を直接変更するのではなく、画像のコンテナを設定してコンテナの透明度を変更します

たとえば、元のコードは次のとおりです: < img src="style/images/icon-shadow" />

次のように変更します:

2. このコンテナに背景色を追加します

これは非常に重要です。バグを解決するための鍵は、次のようなステップにあります。

.share-list-icon-shadow{     width:60px;height:21px;     position:absolute;bottom:8px;left:0px;z-index: 1;     margin: 0 auto;     display:block;     background:#FAFDEF; } 
ログイン後にコピー

通常の状況では、この時点でバグは解決されています。まだ問題がある場合は、以下を参照してください:

3 にズームを追加します。コンテナ

zoom: 1 何をするものですか?なぜ IE にこのようなバグがあるのでしょうか?

これらは 2 つの質問ですが、実際には答えは 1 つです。 IE は、CSS 属性ではなく、filter フィルター を通じて透明度を変更するため、このバグを理解したい場合は、フィルター フィルターから理由を見つける必要があります。フィルターがオブジェクトに作用する場合、そのオブジェクトは有形である必要があります。つまり、IE には非常に特殊な属性 hasLayout があり、この属性はレイアウトとしてコンテナーに与えられます。少し奇妙で、これを渡すことはできません。開始するには CSS を直接記述しますが、JavaScript を介して開始する必要があります。実際には、特別な CSS 属性を使用して hasLayout を偽装して開始するという方法があります。 (display:inline-block、float :left などの他の属性も問題ありませんが、副作用がないのはズームだけです)

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

HTMLは初心者のために簡単に学ぶことができますか? HTMLは初心者のために簡単に学ぶことができますか? Apr 07, 2025 am 12:11 AM

HTMLは、簡単に学習しやすく、結果をすばやく見ることができるため、初心者に適しています。 1)HTMLの学習曲線はスムーズで簡単に開始できます。 2)基本タグをマスターして、Webページの作成を開始します。 3)柔軟性が高く、CSSおよびJavaScriptと組み合わせて使用​​できます。 4)豊富な学習リソースと最新のツールは、学習プロセスをサポートしています。

HTML、CSS、およびJavaScriptの役割:コアの責任 HTML、CSS、およびJavaScriptの役割:コアの責任 Apr 08, 2025 pm 07:05 PM

HTMLはWeb構造を定義し、CSSはスタイルとレイアウトを担当し、JavaScriptは動的な相互作用を提供します。 3人はWeb開発で職務を遂行し、共同でカラフルなWebサイトを構築します。

HTMLでの開始タグの例は何ですか? HTMLでの開始タグの例は何ですか? Apr 06, 2025 am 12:04 AM

Anexampleapalofastartingtaginhtmlis、それはaperginsaparagraph.startingtagsaresentionentientiontheyinitiateelements、definetheirtypes、およびarecrucialforurturingwebpagesandcontingthomedomを構築します。

HTML、CSS、およびJavaScriptの理解:初心者向けガイド HTML、CSS、およびJavaScriptの理解:初心者向けガイド Apr 12, 2025 am 12:02 AM

webdevelopmentReliesOnhtml、css、andjavascript:1)htmlStructuresContent、2)cssStylesit、および3)Javascriptaddsinteractivity、形成、

WebアノテーションにY軸位置の適応レイアウトを実装する方法は? WebアノテーションにY軸位置の適応レイアウトを実装する方法は? Apr 04, 2025 pm 11:30 PM

Y軸位置Webアノテーション機能の適応アルゴリズムこの記事では、単語文書と同様の注釈関数、特に注釈間の間隔を扱う方法を実装する方法を探ります...

Giteeページ静的なWebサイトの展開に失敗しました:単一のファイル404エラーをトラブルシューティングと解決する方法 Giteeページ静的なWebサイトの展開に失敗しました:単一のファイル404エラーをトラブルシューティングと解決する方法 Apr 04, 2025 pm 11:54 PM

GiteEpages静的Webサイトの展開が失敗しました:404エラーのトラブルシューティングと解像度Giteeを使用する

CSS3とJavaScriptを使用して、クリック後に周囲の写真を散乱および拡大する効果を実現する方法は? CSS3とJavaScriptを使用して、クリック後に周囲の写真を散乱および拡大する効果を実現する方法は? Apr 05, 2025 am 06:15 AM

画像をクリックした後、散乱と周囲の画像を拡大する効果を実現するには、多くのWebデザインがインタラクティブな効果を実現する必要があります。特定の画像をクリックして周囲を作成してください...

HTML、CSS、およびJavaScript:Web開発者に不可欠なツール HTML、CSS、およびJavaScript:Web開発者に不可欠なツール Apr 09, 2025 am 12:12 AM

HTML、CSS、およびJavaScriptは、Web開発の3つの柱です。 1。HTMLは、Webページ構造を定義し、などなどのタグを使用します。2。CSSは、色、フォントサイズなどのセレクターと属性を使用してWebページスタイルを制御します。

See all articles