Hallo.
Ich hätte gedacht: Box mit fester Größe (height: 15px) mit
ausgeblendetem Überstand (overflow: hidden) bleibt auch dann
15px hoch, wenn padding: 20 (der Text wäre dann natürlich
nicht mehr zu sehen).
Denn die Größe einer Box ermittelt sich aus margin + border +
padding + height/width + padding + border + margin.
Ja, offenbar kann man die div-Box-Größe nicht unabhängig von
diesen Werten festnageln, oder?
Da hilft dir meines Erachtens nur, dass du dem Div kein(!) Padding mitgibt, aber dem enthaltenen Text ein eigenes Margin. Dann behält das Div seine Höhe bei, aber der Text hält trotzdem den Abstand von der Div-Kante.
Funktionieren würde es mit einer Konstruktion aus einem P-Tag (mit Margin) innerhalb des Div-Tags (ohne Padding) - was hier möglicherweise zum Geschrei „Semantik! Semantik!“ führt.
Streng genommen müssen im Div nämlich mindestens zwei aufeinander folgende HTML-Elemente (gleicher Strukturtiefe) untergebracht werden, die durch das Div gruppiert werden. So steht es im W3C: „if a div wraps just one block-level element […] it’s being used unnecessarily“. Es wird also als „unnütz“ deklariert; ausdrücklich verboten wird es aber nicht, zumindest kenne ich kein solches Verbot in den Infos des W3C.
Jetzt müsstest du also mit deinem Gewissen vereinbaren, ob du auch ein einzelnes Element ins Div setzen willst, oder ob du dich zwingst, mehrere Tags dort hinein zu legen, z.B. indem du den Text auf mehrere Ps verteilst - was aber aus semantischer Sicht ebenfalls wenig Sinn machen kann, je nach textlichem Inhalt.
Merke: Tags ausschließlich für Layout-Zwecke einzufügen, obwohl sie für das Text-Verständnis unnötig sind, ist eine „suboptimale“ Vorgehensweise - obgleich sie für das Design wunderbar funktionieren kann.
Gruß
A.