Hallo Andre,
Im ersten Beispiel macht Opera und im zweiten Netscape Macken.
Wie erwaehnt, wuerde ich bei validem Code einen Opera-Bug ignorieren.
Es sei denn,
a) Opera ist Dein Lieblingsbrowser
b) Du schaust die Seite taeglich 10 mal an...
Wenn ich das div 128px breit machen, ist der Rahmen außerhalb des div's. Mache ich das div 144px breit, ist der Rahmen innerhalb des div's.
Ich verstehe Dich immer noch nicht.
Die Box hat (von innen nach aussen): Inhalt (Content), Padding, Border, Margin:
http://www.w3.org/TR/REC-CSS2/box.html#box-dimensions
Der Rahmen (border) ist immer ausserhalb des Contents.
Und er ist immer Bestandteil der Box, die durch den DIV erzeugt wird.
Aber es gibt kein "innerhalb/ausserhalb des DIVs".
Wie moechtest Du das ueberhaupt unterscheiden?
Gemaess der Spezifikation ist mit width die Breite des Contents gemeint.
Der doofe MS IE (bis 5.5, bzw. im 6.0 im Quirks Modus) versteht unter
width die Breite der ganzen Box. Das ist das kaputte Box Modell des MS IE.
Und dafuer gibt es z.B. den Hack von Tantek:
http://tantek.com/CSS/Examples/boxmodelhack.html
Wenn schon wuerde ich erwarten, dass sich in Deinem Beispiel
ein kaputter MS IE etwa so verhaelt, wie Opera es tut.
Fuer den MS IE bliebe bei width:128px und border:8px ja
nur noch 128-16=112px Platz fuer den Content.
Der Content (das Bild) ist aber 128px breit.
Also sollte wenn schon der MS IE Probleme machen.
Ach, was soll's.
Mach lieber eine einfache Loesung mit moeglichst kurzem
und uebersichtlichem HTML im bisherigen DOCTYPE.
Und vergiss Opera, das hier offenbar einen seinen zahlreichen
Bugs hat.
Wenn ein Opera-Benutzer _echte_ Probleme mit der Anzeige hat, kann
er ja immer noch mit einem Mausklick (oder Ctrl-G) das CSS
ausschalten oder sein Benutzerstylesheet einschalten.
Und fuer optische Details wie einen Zier-Rahmen waere
mir die Zeit zu schade.
Gruesse + schoenen Abend,
Thomas