2012-05-19 22 views
35

sto lavorando su un esperimento & ho scoperto che la proprietà CSS2 "bozza" non è implementata nello stesso modo su Webkit & GeckoCSS "contorno" il comportamento comportamento diverso su Webkit e Gecko

Nello script di seguito , Ho una posizione assoluta div all'interno di un altro div, ma fluttuante al di fuori di esso. Lo schema su Webkit delinea l'effettivo parent dev su Gecko, si espande per coprire l'elemento figlio.

http://jsfiddle.net/KrCs4/

Mi sto perdendo qualcosa? C'è una proprietà che devo sovrascrivere su Gecko? o dovrebbe essere segnalato come un bug?

Webkit Screenshot:

Webkit Screenshot

Firefox Screenshot:

Firefox Screenshot

EDIT:

E 'confermato tratta di un problema ed ecco una soluzione: http://jsfiddle.net/7Vfee/ (è necessario assicurati che il genitore sia posizionato: relativo o assoluto per t la sua soluzione per lavorare.

+0

ugh idea, ho provato diversi metodo – ShibinRagh

+0

Firefox Bug : https://bugzilla.mozilla.org/show_bug.cgi?id=687311 – epascarello

risposta

17

Questo comportamento incoerente di Gecko è ben nota e abbastanza adeguatamente documentato, anche se stranamente non a MDN ma al SitePoint Reference:

Firefox fino al versione 3.5 sarà disegnare il contorno contorno intorno al contenuto di un elemento che ha oltrepassato i suoi limiti piuttosto che attorno alle effettive dimensioni dell'insieme dell'elemento.

Questo continua a influire su tutte le versioni di Firefox. Al momento non vedo una valida alternativa al problema, se non quella di rimuovere il tuo div in posizione assoluta dal genitore e posizionarlo rispetto a ... qualcos'altro.

+1

Perché SitePoint ha più documentazione rispetto alle specifiche W3C ufficiali? http://www.w3.org/TR/CSS2/ui.html#dynamic-outlines –

+0

@Xavier Ho: SitePoint si concentra sulla compatibilità e sui comportamenti dei browser. Non è compito delle specifiche definire i dettagli di implementazione. – BoltClock

+0

È compito di W3C definire il comportamento del browser, indipendentemente dall'implementazione. Per quanto posso dire, il contorno non è molto ben definito quando si tratta di dimensioni. –

30

Ho avuto lo stesso problema, quindi ho scambiato da utilizzare contorno di usare un box-shadow:

box-shadow: 0px 0px 0px 1px #FFF; 

invece di

outline:1px #dcdcdc solid; 
+0

Commento successivo, ma volevo aggiungere che Firefox traccerà anche un contorno attorno a qualsiasi: dopo il contenuto aggiunto nel CSS. L'utilizzo di box-shadow come sopra risolverà il problema. In effetti, l'unica ragione per cui riesco a pensare di usare effettivamente il profilo per qualsiasi cosa sarebbe il supporto per IE8 - a quanto pare può fare schema ma non box-shadow. – crowhill

+0

@crowhill Un altro motivo per utilizzare lo schema è perché fornisce un modo per aggiungere un offset. –

+3

Questo dovrebbe essere contrassegnato come risposta corretta! –

Problemi correlati