2011-10-13 11 views
6

Fondamentalmente il codice seguente dovrebbe semplicemente essere una pagina bianca con un'ombra attorno al bordo. Funziona bene in Chrome ma non riesco a farlo funzionare in Firefox!CSS - Bug di Mozilla? box-shadow: inserto non funzionante correttamente

<html> 
<head> 
<style type=text/css> 
body { 
background:#ffffff; 
font-family:arial; 
margin:auto; 
box-shadow:inset 0px 0px 100px #333333; 
-moz-box-shadow:inset 0px 0px 100px #333333; 
-webkit-box-shadow:inset 0px 0px 100px #333333; 
} 
</style> 
</head> 
<body> 
</body> 
</html> 

Visualizzare la pagina qui:

http://pastehtml.com/view/bagevr6ke.html

vedere le cose in Chrome allora Firefox, e dimmi se si vede una differenza:)

Acclamazioni

EDIT: Quindi il post qui sotto ha spiegato come correggere il codice precedente, ha funzionato un reset CSS e ho anche imparato a conoscere la modalità quirk e doctypes :)

Tuttavia la pagina CSS su cui sto lavorando è ancora affetta da questo bug, non importa quale reset uso. Attualmente non sto usando un Doctype perché non sono sicuro di cosa dovrei inserire, o se correggerebbe il bug.

Ecco il sito completo:

http://middle.dyndns-server.com/results.html

E il foglio di stile:

body { 
background:url('bg.png'); 
font-family:arial; 
margin:auto; 
box-shadow:inset 0px 0px 100px #333333; 
-moz-box-shadow: inset 0px 0px 100px #333333; 
-webkit-box-shadow:inset 0px 0px 100px #333333; 
} 

#footer { 
padding-bottom:10px; 
margin-top:30px; 
} 

#page { 
width:960px; 
height:auto; 

background-color:#ffffff; 
#background:url('bg2.png'); 

/*Space*/ 
padding-top:0px; 
padding-bottom:0px; 
padding-left:0px; 
padding-right:0px; 
margin-top:-10px; 
margin-bottom:0px; 
margin-left:auto; 
margin-right:auto; 

/*Shadow*/ 
-moz-box-shadow: 0px 0px 100px 0px #999999,inset 0 0 10px #000000; 
-webkit-box-shadow: 0px 0px 100px 0px #999999,inset 0 0 10px #000000; 
box-shadow: 0px 0px 100px 0px #999999,inset 0 0 10px #000000; 

/*Border Radius*/ 
border-radius:0px 0px 20px 20px; 
-moz-border-radius:0px 0px 20px 20px; 
-webkit-border-radius:0px 0px 20px 20px; 
-o-border-radius:0px 0px 20px 20px; 

} 

input[type=text] { 
background: -webkit-gradient(linear,left top,right bottom,from(#333333),to(#666666)); 
     background: -moz-linear-gradient(top, #333333, #666666); 
     filter: filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#666666'); 

border-width:1px; 
border-style:solid; 
border-color:#777777; 
color:ffffff; 
} 

.line1 { 
float:left; 
align:center; 
padding-bottom:0px; 
} 

hr { 
clear:left; 
color:#111111; 
} 

/* The *normal* state styling */ 
.btn{ 
background-image:linear-gradient(90deg, rgba(51, 51, 51, 0.8), rgba(0, 0, 0, 0.2)); 
    background-image:-webkit-gradient(linear, 0% bottom, 0% top,color-stop(0%, rgba(51, 51, 51, 0.8)), color-stop(100%, rgba(0, 0, 0, 0.2))); 
    background-image:-moz-linear-gradient(90deg, rgba(51, 51, 51, 0.8), rgba(0, 0, 0, 0.2)); 
    filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#80333333', EndColorStr='#20000000'); 
    -ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorStr='#80333333', EndColorStr='#20000000')"; 
    background-color:rgb(51, 51, 51); 
    border:1px solid rgb(0, 0, 0); 
    border-radius:5px; 
    -moz-border-radius:5px; 
    -webkit-border-radius:5px; 
    padding:5px 10px; 
box-shadow:0px 0px 6px rgb(130, 130, 130); 
    -moz-box-shadow:0px 0px 6px rgb(130, 130, 130); 
    -webkit-box-shadow:0px 0px 6px rgb(130, 130, 130); 
    font-size:12px; 
    font-weight:normal; 
    color:rgb(255, 255, 255); 
    text-shadow:0px 0px 1px rgb(255, 255, 255); 
} 
/* The *hover* state styling */ 
.btn:hover{ 
    background-image:linear-gradient(-90deg, rgba(51, 51, 51, 0.8), rgba(0, 0, 0, 0.2)); 
    background-image:-webkit-gradient(linear, left top, left bottom,color-stop(0%, rgba(51, 51, 51, 0.8)), color-stop(100%, rgba(0, 0, 0, 0.2))); 
    background-image:-moz-linear-gradient(-90deg, rgba(51, 51, 51, 0.8), rgba(0, 0, 0, 0.2)); 
    box-shadow:0px 0px 6px rgb(0, 0, 0); 
    -moz-box-shadow:0px 0px 6px rgb(0, 0, 0); 
    -webkit-box-shadow:0px 0px 6px rgb(0, 0, 0); 
} 

/* The *active* state styling */ 
.btn:active,.btn:focus{ 
    background-image:linear-gradient(90deg, rgba(51, 51, 51, 0.8), rgba(0, 0, 0, 0.2)); 
    background-image:-webkit-gradient(linear, 0% bottom, 0% top,color-stop(0%, rgba(51, 51, 51, 0.8)), color-stop(100%, rgba(0, 0, 0, 0.2))); 
    background-image:-moz-linear-gradient(90deg, rgba(51, 51, 51, 0.8), rgba(0, 0, 0, 0.2)); 
} 

a { 
font-family:arial; 
outline:none; 
text-decoration:none; 
color:333333; 
} 

a:link { 
text-decoration:none; 
} 

a:visited { 
text-decoration:none; 
} 

a:active { 
text-decoration:none; 
color:ffffff; 
} 

a:hover { 
text-decoration:none; 
} 

Sono sicuro che la sua non è tutto fantastico, ma sto imparando e questo problema è il mio obiettivo principale in questo momento :)

Grazie mille.

+0

Condividi l'HTML completo della tua pagina. – thirtydot

risposta

3

Aggiungere questo:

html, body { 
    height: 100% 
} 

http://jsbin.com/oyuzug

Non c'è nulla in body, quindi non ha altezza.

L'unico motivo per cui ha funzionato senza questo in Chrome è perché non hai incluso un doctype come prima linea per abilitare la Modalità standard.

testare queste in Chrome:

tuo codice originale: http://jsbin.com/urimah

tuo codice originale con doctype: http://jsbin.com/urimah/2

Conclusione: Sempre includere un DOCTYPE come la prima linea di evitare Quirks Mode e le incongruenze che porta tra diversi browser.

+0

Questo funziona per l'esempio che ho dato, ma ancora non risolve il mio problema principale (è molto più complesso). Ho pensato di utilizzare un reset sarebbe come è stato risolto xD Grazie mille –

+1

Prego. Non posso aiutarti con il tuo "problema principale" a meno che tu non lo spieghi. – thirtydot

+0

Ho aggiornato "OP", non so come li chiami su StackOverflow (che mi piace molto!). Grazie ancora! –

2

Firefox ti mostra la cosa giusta perché al momento body non ha height. Quindi devi definire lo height del tuo body.

Scrivi questo nel vostro CSS:

html, body { 
    height: 100% 
} 
0

Quindi la risposta contrassegnata come corretta CSS - Mozilla bug? box-shadow:inset not working properly non funziona per me. Perché? Perché l'esempio include nessun contenuto.Quando lo stile elementi <body> e <html> con height: 100% crea uno strano bug in cui il 100% è tecnicamente registrando come 100% della finestra, piuttosto che il 100% della altezza della finestra.

Questo è un ottimo esempio di come farlo correttamente: http://www.dave-woods.co.uk/wp-content/uploads/2008/01/full-height-updated.html. Styling gli elementi body e html a height: 100% è corretto, tuttavia, l'interno-ombra deve essere fissato ad un altro elemento (non può essere body o html) e poi min-height: 100% nonché box-shadow: 0 0 100px #000 attaccato allo spessore, ad esempio

html, body { height: 100% } 
#styled-div { 
    min-height: 100%; 
    box-shadow: 0 0 100px #000; 
} 
Problemi correlati