Hallo,
ich wurstle nun schon eine Weile an dem Problem herum; da ich zu keiner Lösung komme, hoffe ich auf euch.
Und zwar geht es um einen Textabsatz (<p>). Das Element soll vor allem zwei Eigenschaften haben:
1. seine Breite an seinen Inhalt anpassen. Dies liese sich problemlos per display:inline;
realisieren, klar.
2. es soll einen Block erzeugen.
Da liegt das Problem. Wenn ich es als Inline-Element definiere, erzeugt es natürlich keinen Block. Ich möchte allerdings eine Hintergrundfarbe und einen Rahmen um das _ganze_ Element und nicht um die einzelnen Textzeilen. Darum brauche ich einen Block.
Verwende ich display:block;
, so habe ich zwar Rahmen und Hintergrund wie gewünscht, das Element passt seine Breite aber nicht an den Inhalt an, sondern nimmt die gesamte verfügbare Breite ein. – Das soll es aber nicht.
dispay:inline-block;
hilft leider auch nicht, da es sich zwar in Opera wie gewünscht verhält, aber nicht im FF oder dem IE (in den beiden nimmt das Element wieder die gesamte Breite ein).
Ich habe auch schon darüber nachgedacht, die Sache mit zwei Elementen zu realisieren: <div><p>foo bar</p></div>.
Meine Hoffnung dabei war, ich könnte beide Elemente als Inline-Elemente definieren und dann Rahmen und Hintergrundfarbe dem <div> zuweisen. Die Idee dahinter war, dass das <div> eine Box um das <p> bildet – was aber natürlich nicht der Fall ist, wegen meines Denkfehlers: das <div> ist ja ebenfalls ein Inline-Element …
Aber irgendwie muss das doch möglich sein. Ich würde mich über Tipps sehr freuen.
Gruß und Schönen Ostermontag noch,
Claudius