Hallo!
div:after { ... }
spricht ein Pseudoelement an, dass man sich im HTML-Code so vorstellen muss:<div>Content<pseudospan></pseudospan></div>
Entsprechendes gilt für :before.
Danke, das erklärt dieses Verhalten. Die Beschreibung auf der Seite, die ich oben nannte ist dann etwas missverständlich:
"Die 'display:block' Eigenschaft sorgt dafür dass die verwendeten Bildränder als Blockelemente behandelt werden und somit über und unter den Hauptinhalt gesetzt werden anstatt in die erste und letzte Zeile des Selbigen."
Es funktioniert dort nur, weil die Bilder für die oberen und unteren Ränder keine Transparenz enthalten. D.h. ich müsste mein Hintergrundbild aus dem div anders verbauen. :-(