2013-05-14 12 views
6

div内に画像が配置されていると、画像の角を隠して円として表示するための角が丸くなります。 Safariを除くすべてのブラウザで動作します!誰もそれを修正する方法を知っていますか?親のdivに設定された境界線の半径をトリミングするのがSafariで機能しない

私は-webkit-padding-box,-webkit-mask-box-imageを試しましたが、どちらもうまくいきませんでした。

HTML:

<div class="cat"><img src="images/colorful-flowers-hd-wallpaper.jpg" /></div> 

CSS:

.cat{ 
    width: 128px; 
    height: 128px; 
    margin: 20px 96px 0px 96px; 
    position: relative; 
    float: left; 
    border-radius: 50%; 
    overflow: hidden; 
    border-top: 1px solid #111; 
    border-bottom: 1px solid #fff; 
    background: #fff; 
    -webkit-box-shadow: inset 0px 0px 10px 0px rgba(0, 0, 0, 0.6); 
    box-shadow: inset 0px 0px 10px 0px rgba(0, 0, 0, 0.6); 
} 

.cat img{ 
    position: absolute; 
    border: none; 
    width: 138px; 
    height: 138px; 
    top: -8px; 
    left: -8px; 
    cursor: pointer; 
} 

fiddle

答えて

0

あなたは何Safariのバージョンで動作しますか?その問題の

いくつかの(あっけなく)説明: How to make CSS3 rounded corners hide overflow in Chrome/Opera

あなたはposition:absolute;でコンテンツフローの<img />を取っています。 これにより、display属性をblockに変更する必要があります。そして、border-radiusをimgに置くことは意味があります。

http://jsfiddle.net/Volker_E/LgYrz/
を参照してください。注:非常に古いWebkits(サファリ< 5.0)-webkit-border-radius is necessary

10

でこの問題に対処する最善の方法は、親要素にoverflow: hidden;を指定することです。

+0

このような簡単な解決策!ありがとうございました! – Jack

0

もう1つの簡単な回避策は、imgタグにもborder-radiusプロパティを追加し、同じ値を指定することです。

私はHTML5 figureタグを使用して画像を保存することができます。私はしばらくの間、いくつかのブラウザでそれをテストしていませんでしたが、前回のFirefoxでdouble border-radius回避策が必要でした。

関連する問題