Hvis dine sider ser meget forskellige ud - og du bruger en fuld DTD - kan det næsten kun skyldes uhensigtsmæssig CSS-kode.
Én årsag er formodentlig, at du ikke er bekendt med den korrekte brug af CSS's box-model. Ting som border og padding lægges oveni den størrelse, du sætter med height og width. Prøv f.eks. disse to sider i IE:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"
http://www.w3.org/TR/html4/loose.dtd"><html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>TITLE</title>
<style type="text/css">
body, html {
height: 100%;
margin: 0px;
}
</style>
</head>
<body>
<div style="width:200px;height:200px;background-color:yellow;border:50px solid red"> </div>
</body>
</html>
------- og ------->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>TITLE</title>
<style type="text/css">
body, html {
height: 100%;
margin: 0px;
}
</style>
</head>
<body>
<div style="width:200px;height:200px;background-color:yellow;border:50px solid red"> </div>
</body>
</html>
Du kan også prøve at sætte padding på divene og se resultaterne.
Læs også under 'The !DOCTYPE "Switch"' her:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnie60/html/cssenhancements.aspHvad angår vertical-alignment på et input, så er det netop problemet, du selv skitserer i spørgsmålet. Det handler nemlig ikke om 16 eller 20px i højden, men om at den ene browser pr. default sætter vertical-align til 'middle'. Gør du det selv på elementet, vises det ens i begge browsere. Da CSS ikke stipulerer, hvordan vertical-align skal være sat på et input-element, er det en af de ting, der altid vil kunne være forskel på.
Bohr sagde engang noget i rettning af:
"Det, vi ser, er ikke naturen - men naturen udsat for vores måde at spørge på."
Selvom den udtalelse gik på måleforhold i et subatomart miljø, rummer den en stor sandhed om de fleste misforståelser, vi kommer ud for. Vi oplever nogle ting og søger deres forklaring med forkerte spørgsmål ... søger de forkerte steder ... de steder, vi kan få øje på. Meget ofte ligger forklaringerne på steder, hvor vi slet ikke tænker på at lede.
Problemerne, du oplever med din kode, skyldes mest sandsynligt, at du ikke skriver CSS i overensstemmelse med standarden, men får strikket en masse fejl sammen, der i rimelig grad ophæver hinanden. Det afsløres så, når IE pludselig overholder CSS1-standarden og lidt af CSS2.
Der er en hel del at læse og lære på W3C, før man kan kode ordentlige sider med CSS (og de andre web sprog og teknologier) - men webkodning er på den anden side også ved at være et fag, så det bør vel ikke undre.
Man kan ikke både have et simpelt tabel- og paragraf-framework, alle kan finde ud af at udgive videnskabelige måledata i - og samtidig have en højteknologisk medie- og underholdningsplatform. C'est la udvikling ;o)