Hallo,
im quirks-mode ist das input-feld (incl rand) tatsächlich 300px breit
Ja, eben das ist falsch.
im "xhtml-modus" jedoch ist das input-feld (incl rand) 304px breit, die div wird trotzdem nur auf 312px gestreckt und das input-feld geht folglich rechts in das padding hinein.
wo ist da die logik? ich versteh's nicht.
Über _diese_ "Logik" gab es schon viele Diskussionen. Das Box-Model von CSS http://www.w3.org/TR/CSS21/box.html#box-dimensions legt das so fest.
Mit der Eigenschaft width legst Du die Content-width, also die Breite des Inhalts fest. Alles Andere, also padding, border, margin, liegt außen drum.
Du legst fest, dass Content-width Deines DIVs 300px sein soll. Im DIV, also als Inhalt des DIVs steht das INPUT. Dessen Content-width ist 100%, also 300px. Der Rahmen des INPUT gehört nicht zur Content-width. That's it.
viele Grüße
Axel