2013-01-17 3 views
29

overflow,border-radius、およびtransitionの組み合わせを使用すると奇妙なバグが発生しています。私はそれの中にimgを持つdivを持っています。 divには境界線の半径があり、オーバーフローはhiddenに設定されています。 imgの上にマウスを置くと、イメージを拡大してズーム効果を作り出すトランジションが発生します。問題は、オーバーフローが画像の左下と右下に壊れているように見えることです。アニメーション/トランジションを使用すると、Webkitの境界半径とオーバーフローのバグが発生する

私は、あなたが私が何を話しているかを見るためにjsfiddleを作成しました。 http://jsfiddle.net/dmcgrew/HuMrC/1/

Firefoxではうまく動作しますが、ChromeとSafariは壊れています。

これを引き起こしている可能性がありますか、それを修正する方法を知っている人は誰ですか?

+0

をマイナスのzインデックス画像の値と高い値を追加し、私自身:)ありがとうを投稿しようとしていました! –

+1

これを見てください: http://stackoverflow.com/questions/20001515/chrome-bug-border-radius-not-clipping-contents-when-combined-with-css-transiti これは最終回答です最高のソリューション! –

+1

関連するChromiumバグ:[#157218](https://code.google.com/p/chromium/issues/detail?id=157218) –

答えて

2

画像が読み込まれていないため、正しく問題を理解しているかどうかわかりません。 height: 100%;.inner_blockに追加すると問題が解決しますか?

http://jsfiddle.net/HuMrC/2/

+2

それはそれを修正するようだ。私は透明な色の枠を.block divに追加するだけで問題を解決できました。 – Dustin

1

私はマスクされた要素のクリック可能な面積を増加させる明確な境界線を持つことができないので、受け入れ答えは私のために動作しませんでした、また私はそれが他の要素(および設定のことをあいまいにしたいです100%までの高さは問題を解決しなかった)。

考えられる解決方法はmy answer to a related questionを参照してください。

59

私は同じ正確な問題を抱えていました。これを親コンテナに追加すると、それは私のために解決されました(これはLESSミックスインです)。

.transitionfix() { 
    -webkit-backface-visibility: hidden; 
    -moz-backface-visibility: hidden; 
    -webkit-transform: translate3d(0, 0, 0); 
    -moz-transform: translate3d(0, 0, 0) 
} 
+0

あなたの答えはThanx、自分の質問を投稿しようとしていました:) Thanx! –

+1

サファリでjsFiddleをテストすると、Safariでブレークします。http://jsfiddle.net/d4h2t0Lt/ – woutvdd

+0

ありがとう!これは、Mac用のChromeとSafari(v7.1.2)の両方で私にとって役立ちました。 CSSファイルから/ * FIX * /行を削除した後、 "ja"と入力してフィルタリストを表示すると、Jay-zのアバターがアニメーション中にオーバーフローとボーダー半径を無視することがWebkitに表示されます。私のプランカはこちらhttp://plnkr.co/ayRgf52URQQ5XLqQtZVJ – tbutcaru

3

私はあなたの質問のためにありがとう親

ため
li {z-index:10; overflow: hidden;} 

li img {z-index: -10;}