il colore di sfondo css scompare con doctype
Domanda
Sto cercando di impostare i colori di sfondo su un paio di elementi diversi in una pagina HTML, ma ogni volta che applico una dichiarazione DOCTYPE i colori vengono ignorati. Altri stili sembrano inalterati. Sono sicuro che io sia un idiota.
Accade su IE7, FF3 e Chrome. Con Strict e Transitional HTML 4 Doctype. Corpo e Div sfondi sono interessati. Un esempio minimo è inferiore. Se si elimina il delcaration Doctype, è resa in tutta la sua gloria sgargiante, con doctype -. Noioso bianco e nero solo
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<style>
body{background-color:FF00FF;}
.class1{background-color:00FFFF;}
</style>
</head>
<body>
<div class="class1">Some Text</div>
</body>
</html>
A proposito - non sto usando XHTML perché penso che una volta ho sentito una conversazione in un pub, tra le persone più intelligenti di me che ha detto che ha detto che non si deve dichiarare XML a meno che i tipi MIME siano correttamente impostate sul server. Sul mio account di hosting cheapo non posso fare questo genere di cose con facilità.
Soluzione
Hai dimenticato la #
nei valori di colore.
body {
background-color: #FF00FF;
}
.class1 {
background-color: #00FFFF;
}
Altri suggerimenti
La ragione per cui i colori vengono ignorati perché la dichiarazione non è corretta. In quirks mode l'interpretazione è più rilassato, ei colori sono accettati nonostante sapessero che non sono corretti, ma in modalità standard compliant la dichiarazione deve essere corretta.
Cambia FF00FF a # FF00FF, e 00FFFF a # 00FFFF.
# FF00FF può anche essere scritta nella forma breve # F0F, e # 00FFFF come # 0FF.
In CSS è possibile definire i colori in RGB o esadecimale. Questo è quello che hai fatto. Ma Hex-I colori sono scritti come #rrggbb
. Ti sei perso il # .
Sembra che quando si tratta di convalida perché un DOCTYPE è impostato, allora tali definizioni "quasi-corretti" colori non vengano interpretati correttamente.
rimuovere la seguente riga
DOCTYPE HTML PUBLIC "- // W3C // DTD HTML 4.01 Transitional // EN" " http: // www. w3.org
allora sarà ok, ma io non so perché.
Il tuo dovrebbe allsoo utilizzo