2012-10-21 3 views
13

ChromeとFirefoxの両方でボックスシャドー効果をテストしていましたが、2つのブラウザ間でレンダリングに劇的な違いが見られました。特に、Firefoxのレンダリングはと多くはとなっていました。FirefoxとChromeはボックスシャドウを全く異なった形でレンダリングしているようです

ChromeFirefox

最初の画像は、クロム22でレンダリングされ、およびFirefox 16で後者はMac OS 10.8.2の下で実行両方:ここでは、2枚の参照画像です。私はなぜ2つの画像が異なってレンダリングされているのか分かりません。ここでは、両方のブラウザで同じボックスシャドウ自体、です:

box-shadow: 0px 1px 3px rgba(0,0,0,0.3), inset 0px 4px 2px -2px rgba(255,255,255,0.7), inset 0px -3px 1px -2px rgba(0,0,0,0.3), inset 0px -20px 200px -100px rgba(0,0,0,0.5); 

ライブデモのために、あなたはhereを見ることができます。効果を得るためにマウスの上にマウスを置く。

レンダリングのこの劇的な違いを解決する方法はありますか?

+2

これはかなりの間問題でした。私はまだそれが原因でわからない:http://stackoverflow.com/questions/11167516/different-output-for-same-box-shadow-size-in-chrome-and-firefox – BoltClock

+0

私の推測は、これブラウザが設計するコンポーネントです。たとえば、アラートポップアップはブラウザによって大きく異なります。同じ見た目にしたい場合は、自分で描画してコード化しなければならないと思います。 – user1894606

答えて

4

異なるスタイルを使用するFirefoxのメディアセレクタを作成できます。あなたはそれで遊ぶ必要があります。たとえば、ぼかしとスプレッドを減らし、最後のインセットボックスシャドウの不透明度を上げました。だから、■はのためのCSS:は、おそらくこのようなものになるはずですホバー:より多くのメディアセレクタと他のブラウザの場合は

.box:hover { 
    box-shadow(0px 1px 3px rgba(0,0,0,0.3), inset 0px 4px 2px -2px rgba(255,255,255,0.7), inset 0px -3px 1px -2px rgba(0,0,0,0.3), inset 0px -20px 200px -100px rgba(0,0,0,0.5)); 
} 

@-moz-document url-prefix() { 
.box:hover { 
    box-shadow(0px 1px 3px rgba(0,0,0,0.3), inset 0px 4px 2px -2px rgba(255,255,255,0.7), inset 0px -3px 1px -2px rgba(0,0,0,0.3), inset 0px -20px 130px -120px rgba(0,0,0,0.9)); 
} 
} 

あなたはChromeとFirefoxが異なるHTMLレンダラを使用しているためだBrowserHacks.com

+0

私は、各ブラウザのプレフィックスを使用すると十分なので、ハックを使用する理由はないと考えています。 – xpy

+0

@xpy私はあなたを理解できないので、私に例を挙げてもらえますか? – thexpand

+2

私は例の真似をしました:http://jsfiddle.net/pavloschris/hkJkG/属性の接頭辞がないバージョンがあっても、chromeは接頭辞付きのものを使用し、他のブラウザは接頭辞なしのものを使用します。 – xpy

1

を訪問することができますハッキング。私は劇的な違いはラガの色が原因だと思って、代わりに影を消してみてください。

1

は、CSSが役立つリセットされるかもしれ:

http://codepen.io/anon/pen/IteyC

+1

これを読んで、**理解しない方法**を理解するために、このhttp://stackoverflow.com/help/deleted-answersを試してください。すなわち、「根本的に質問に答えない回答」:**外部サイトへのリンク以上のもの** –

1

あなたはので、これをやってみてください、複数のボックスシャドウを使用している

(また、私はあなたがしようとするために、以下の本を行っているボックスの影からアルファを削除します)
box-shadow: 0px 1px 3px rgba(0,0,0), 
      inset 0px 4px 2px -2px rgba(255,255,255), 
      inset 0px -3px 1px -2px rgba(0,0,0), 
      inset 0px -20px 200px -100px rgba(0,0,0); 

-moz-box-shadow: 0px 1px 3px rgba(0,0,0), 
       inset 0px 4px 2px -2px rgba(255,255,255), 
       inset 0px -3px 1px -2px rgba(0,0,0), 
       inset 0px -20px 200px -100px rgba(0,0,0); 

-ms-box-shadow: 0px 1px 3px rgba(0,0,0), 
       inset 0px 4px 2px -2px rgba(255,255,255), 
       inset 0px -3px 1px -2px rgba(0,0,0), 
       inset 0px -20px 200px -100px rgba(0,0,0); 

-webki-box-shadow: 0px 1px 3px rgba(0,0,0), 
        inset 0px 4px 2px -2px rgba(255,255,255), 
        inset 0px -3px 1px -2px rgba(0,0,0), 
        inset 0px -20px 200px -100px rgba(0,0,0); 

まだ問題が残っている場合は、そのためのフィドルまたはリンクがありますので、正しくチェックすることができます。

関連する問題