Wie gesagt, dein HTML ist fehlerhaft. Du verwendest keinen DOCTYPE, daher wird die Seite im Quirksmodus dargestellt.
Du kannst deinen Code z.b. damit validieren
https://validator.w3.org/
Das sind Grundlagen, daher mal ein Hinweis auf Quellen, mit deren Hilfe du CSS lernen kannst:
Little Boxes online lesen - Little Boxes - Webseiten gestalten mit HTML und CSS (Peter Müller)
https://wiki.selfhtml.org/wiki/CSS
Dadurch das die Seite in einem falschen Modus dargestellt werden, stimmen die Abstände nciht mehr mit dem Boxmodell überein, dein Problem sind aber vermutlich die vom Browser vordefinierten Werte.
Es ist üblich diese mit einem "CSS Reset" zu eliminieren.
CSS-Reset: Rücksetzen der Browservorgaben - CSS - Tutorials, Tipps und Tricks für Webmaster auf Webmasterpro.de
Der einfachste wäre z.b.
Code:
* {
margin: 0;
padding: 0;
}
Aber ich würde mir an deiner Stelle wirklich mal ein Buch in die Hand nehmen oder wenigstens ein Tutorial durcharbeiten, deine Selektorenwahl deuten darauf hin, dass du sie noch nicht verstanden hast. Und eine Tabelle als Gestaltungselement ist ähnlich verpöhnt wie ein Frame, sowas braucht man heute nicht mehr.