Abstand durch den <p>-Tag
Ronald
- css
Hallöchen,
warum hat das <p>-Tag eigentlich immer einen automatischen Abstand zum darauf folgenden Element und wo ist dieser definiert? Ist es dem Browser überlassen, welchen Abstand er verwendet, wenn ich keine Angaben wie margin-bottom mache?
Und warum habe ich z.B. in einer Tabelle einen Abstand vor dem ersten <p>-Tag?
Beispiel:
<table width="300" border="2" cellspacing="0" cellpadding="0">
<tr>
<td><p>Dieser Textabsatz hat einen
Abstand von xxx zum darauffolgenden.</p>
</td>
</tr>
</table>
Kann man so etwas generell abstellen? Wenn ich ja beispielsweise einen negativen Wert über CSS definiere z.B.
p {margin-top: -20px;}
gilt das ja für alle <p> Elemente. Besteht die einzige Möglichkeit dem ersten <p> eine Klasse zuzuweisen die das umgeht?
Grüße
Ronald
warum hat das <p>-Tag eigentlich immer einen automatischen Abstand zum darauf folgenden Element und wo ist dieser definiert? Ist es dem Browser überlassen, welchen Abstand er verwendet, wenn ich keine Angaben wie margin-bottom mache?
<p /> = paragraph, zu deutsch absatz
ein absatz hat in der typographie, zumindest im deutschen traditionell eine leerzeile danach oder eine einrückung in der ersten zeile
je nach browser-default-stylesheet haben <p />-elemente einen aussenabstand (margin) davor und danach, durch collapsing margins fallen diese aber zusammen - natürlich kann man die werte auch selbst frei definieren - empfehlenswert ist einen absatz nach einem ähnlichen schema wie überschriften zu definieren - abstände immer davor, danach oder (davor und danach) damit bei verschiedenen textzusammenstellungen immer ein vernünftiges layout bleibt
Und warum habe ich z.B. in einer Tabelle einen Abstand vor dem ersten <p>-Tag?
Beispiel:
<table width="300" border="2" cellspacing="0" cellpadding="0">
<tr>
<td><p>Dieser Textabsatz hat einen
Abstand von xxx zum darauffolgenden.</p>
</td>
</tr>
</table>
ein <p />-element ist in einer tabelle nur selten sinnvoll - wenn du tabellen zum layouten benutzt, tu das nicht
Kann man so etwas generell abstellen? Wenn ich ja beispielsweise einen negativen Wert über CSS definiere z.B.
p {margin-top: -20px;}
abstellen tust du das mit margin-top: 0;
ein negativer wert würde nicht funktionieren
gilt das ja für alle <p> Elemente. Besteht die einzige Möglichkeit dem ersten <p> eine Klasse zuzuweisen die das umgeht?
du suchst die pseudo-klasse :first-child - leider versteht die der internet explorer nicht, darum musst du entweder fest eine echte klasse in den ersten absatz schreiben oder diese mit javascript nachtragen bzw im ie 6 darauf verzichten
für initiale eignet sich übrigens :first-letter, das kann der ie 6 schon
Danke, das war sehr hilfreich.
Viele Grüße
Ronald