Hallo!
Das Layout hat derzeit quasi zwei Spalten. Beide haben die Breitenangabe 50 %. Dazwischen klemmt eine Hilfszelle mit einem auf 15px Breite aufgezogenen transparenten GIF.
Das ist ja ansich schon "unsauber" layoutet und "funktioniert" (wird also wie beabsichtigt angezeigt) nur, weil die Browser bei Tabellen quasi "automatisch" eine entsprechende Korrektur der Angaben vornehmen.
Von solchen "unsauberen" Praktiken muss man sich natürlich auch verabschieden, wenn man "saubere" CSS-Layouts erstellen möchte.
Generell ist das Arbeiten mit Width-Angaben von 100% [1] tendenziell "gefährlich", denn es kann ganz schnell dazu führen, dass ein Element doch breiter als 100% wird, was im günstigsten Falle dann "nur" zu horizontalen Scrollbalken führt.
Wenn man Prozentangaben für sein Layout verwendet, sollte man zusätzlich auch ausschließlich ganzzahlige Werte verwenden, da Opera keine anderen Werte bei Prozentangaben umsetzt (zumindest war das älteren Versionen so - wie es bei den aktuellen 9er Versionen aussieht weiß ich aktuell leider nicht).
Man muss also nicht unbedingt immer zwingend versuchen, sein altes Tabellen-Layout exakt 1:1 per CSS umzusetzen. Auch wenn das in den allermeisten sicher gehen würde. CSS-Layouts zeichnen sich ja gerade durch ihre Felxibilität aus (wenn man eben nicht versucht, sie pixelgenau "festzuzurren").
Gruß Gunther
[1] Das gilt auch für die Verwendung mehrerer Width-Angaben, die dann in der Summe 100% ergeben. Für ein einzelnes Blockelement ist die Angabe zumeist eh nicht nötig, da es von hause aus diese Breite einnimmt.