2013-04-03 7 views
7

Wie wir wissen, funktioniert overflow: hidden in Kombination mit border-radius nicht in allen Browsern funktionieren, wie es sollte - nämlich Safari und Opera haben Probleme, die abgerundeten Ecken aus enthaltenen Bildern zu schneiden.Feature erkennen falschen Überlauf mit Border-Radius

Beispiel HTML:

<a class="circle" href="#"> 
    <img src="http://placekitten.com/300/300" alt="kitten" /> 
</a> 

und entsprechende CSS:

.circle { 
    -webkit-border-radius: 100px; 
    -moz-border-radius: 100px; 
    border-radius: 100px; 
    height: 120px; 
    overflow: hidden; 
    width: 120px; 
} 

Kontrolle dieses jsfiddle

Ich habe eine Fallback für Safari und Opera mit Hintergrund-Bilder, aber ich will es nur verwenden, falls overflow nicht gut funktioniert. Nun, ich möchte nicht einfach Browsererkennung für known reasons verwenden, aber ich möchte Feature erkennen die Fähigkeit, die Ecken den richtigen Weg abzuschneiden. Normalerweise würde ich wie folgt zu überprüfen:

if('overflow' in document.body.style){ 
    // overflow 
} else { 
    // no overflow 
} 

Aber das wird diesmal nicht helfen ... Also, gibt es eine Möglichkeit, es richtig zu überprüfen?

+4

Es gibt keine Möglichkeit, dies zu überprüfen. Es ist keine Funktion, die Sie erkennen möchten, sondern ein DEEP-Fehler. Sie können den Browser nicht fragen, ob dieser Fehler vorliegt. Der Teil, mit dem Sie sprechen können, weiß das nicht. – Rudie

+0

Große Geige aber! – Rudie

+0

@Rudie Vielleicht sollte ich um ** Fehlererkennung ** bitten ... (Eigentlich ist das, was ich tun möchte: http://jsfiddle.net/SY9tY/) – AvL

Antwort