2012-01-02 21 views
12

Non riesco a capire perché border-radius è scomparso dal mio elemento #screen quando si utilizza chrome ma non firefox o ie9?CSS Il raggio del bordo non taglia immagine su Webkit

ho tutti i diversi prefissi per ogni browser, più lo standard border-radius:

www.cenquizqui.com

La casella di contenuti superiore che contiene le immagini, chiamato #screen

un copia incolla di css dello schermo:

#screen {background: none repeat scroll 0 0 #EEEEEE; 
    display: block; 
    height: 300px; 
    position: relative; 
    width: 960px; 
    overflow:hidden; 
    -moz-border-radius:10px; 
    -webkit-border-radius:10px; 
    -o-border-radius:10px; 
    border-radius:10px;} 

Forse perché Chrome non gestisce il 'taglio' delle immagini in modo corretto? Ho pensato che fosse solo un problema quando avevi i tag effettivi all'interno del contenitore dell'angolo arrotondato, non quando l'img è chiamato come background-image attraverso css.

saluti G.Campos

+0

Non funziona anche in Opera. – c69

risposta

9

Webkit non è in grado di gestire il ritaglio di margini per bambini e nipoti +. È solo così male. Se si desidera il ritaglio dei bordi, deve essere direttamente sul div l'immagine viene posizionata senza scendere più in basso nella gerarchia.

+1

non è riuscito a trovare alcuna documentazione riguardo a questo bug o difetto - se qualcuno lo fa, per favore fallo dire allo – Sotkra

+1

http://stackoverflow.com/questions/5736503/how-to-to make-css3-rounded-corners-hide-hide-overflow-in-chrome-opera –

0

Sembra che è necessario applicare il raggio confine con l'elemento li:

#slides li { 
display: block; 
float: left; 
height: 300px; 
width: 960px; 
position: relative; 
border-radius: 10px; 
} 
+0

Questo darà un effetto molto poco attraente. – AlienWebguy

+0

per me e tu sì, solo cercando di aiutare a rintracciare dove Sotkra potrebbe cercare di apportare modifiche. – justinlabenne

+0

beh, sì, posso applicarlo all'elemento li, ma poi, quando le diapositive vengono fatte passare, gli "angoli" tra le diapositive non sarebbero senza soluzione di continuità. In definitiva, la domanda è: perché questo accade su chrome ma non su ff o ie9? – Sotkra

0

Lo fa molto avere un raggio di confine:

enter image description here

(Ho appena aggiunto un bordo con la barra degli strumenti di sviluppo di Chrome.)

Il raggio del bordo non limita il suo contenuto all'interno dell'area risultante — lo spazio al di fuori degli angoli è ancora occupabile dal contenuto dell'elemento.

La mia raccomandazione sarebbe quella di sovrapporre un'immagine che ha gli angoli tagliati in quel modo (e quindi utilizzare una mappa o qualsiasi cosa con cui ci si sente a proprio agio per abilitare ancora le frecce sinistra/destra).

+3

Sì, lo so, ma ... è una cosa "solo chrome" perché Firefox sembra gestirlo bene. L'inferno, anche il browser più scadente, ovvero 9, lo gestisce bene. Mi chiedo se questo può essere risolto con una sorta di proprietà clip di sfondo ... – Sotkra

+1

Mi chiedevo anche se il posizionamento assoluto e z-index stava rovinando il ritaglio attraverso il raggio di confine. Ho rimosso entrambi e il bug persiste. – Sotkra

+0

@Sotkra, No, questo si verifica anche in Safari e Opera. Sembra che Firefox e IE siano quelli che hanno capito bene. E dovresti davvero dare un'altra occhiata a IE9/10 in quanto il loro motore Javascript è di gran lunga il più veloce e reattivo di tutti i browser. IE ha davvero ripulito un sacco di cose e molti dei grandi bug che ho incontrato ora sono problemi del webkit. – Aaron

1

provare il seguente CSS agli elementi secondari dell'elemento con border-radius serie: opacity:0.99; risolve il problema e non cambia l'opacità molto. Questo ha funzionato perfettamente per me.

27

Ecco una soluzione che risolverà il bug Chrome corrente:

.element-that-holds-pictures { 
    perspective: 1px; /* any non-zero value will work */ 
} 

Ciò non influirà la visualizzazione a tutti (a differenza del opacity:0.99 soluzione - che è grande soluzione, anche, tra l'altro).

+1

Lei mi ha salvato la giornata !! – phoenixwizard

+1

Wow, ha funzionato come un fascino. Grazie! – Andrienko

+0

Questa deve essere la risposta accettata per Chrome Browser – ntgCleaner

3

C'è una soluzione molto più semplice.

Basta aggiungere overflow:hidden al contenitore che ha il raggio di confine e contiene gli elementi figlio. Questo impedisce ai bambini di "fluire" sul contenitore. Risolve il problema e mostra il raggio del bordo

Problemi correlati