Selbi: <pre> macht extra Zeilenumbruch am Ende

Mit <pre> kann man wunderbar Quellcode darstellen ohne sich große Sorgen um Formatierung machen zu müssen. Es gibt aber ein Problem:
Mit dem Schließen eines <pre> Tags, wird ein zusätzlicher Zeilenumbruch gemacht. Dies mag zwar ohne weiteres nicht auffallen, aber wenn es z.B. in einer Tabelle stelt, ist es nicht zu übersehen (Code hier hinein kopieren):

<table border="1"><tr><td><pre> clr.b ($FFFFFF8B).w ; clear flag it's set</pre></td></tr></table>

Ich hab mir überlegt, ob ich es mit spans machen sollte und es funktioniert auch, nur die Zeilenumbrüche lassen mich noch im Stich. "nl2br" mit PHP ignoriert die $ Wörter mit " und schließt die Eingabe mit ' (es ist ein endlos langer Text, also funktioniert ' auch nicht gut).

Also wäre meine Frage kann man <pre> austricksen, sodass es kein extra Zeilenumbruch macht?

  1. Hi,

    Mit dem Schließen eines <pre> Tags, wird ein zusätzlicher Zeilenumbruch gemacht.

    Nein, nicht wirklich.
    Du unterliegst hier der gleichen Fehlinterpretation, wie all die Leute, die sich beschweren, dass nach einem Formular „ein Zeilenumbruch gemacht“ würde.
    Es handelt sich dabei aber nicht um einen solchen, sondern schlicht und einfach um das Default-margin, dass im Browser-Stylesheet (Block-)Elementen wie form oder pre verpasst wird.

    Also wäre meine Frage kann man <pre> austricksen, sodass es kein extra Zeilenumbruch macht?

    Es „auszutricksen“ ist nicht nötig - es handelt sich hier lediglich um einen Frage der Formatierung, und damit um den Zuständigkeitsbereich von CSS.
    Du musst lediglich explizit angeben, dass du ein anderes margin wünschst, als im Default-Stylesheet deines Browsers vorgegeben.

    MfG ChrisB

    --
    RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
  2. Mit <pre> kann man wunderbar Quellcode darstellen ohne sich große Sorgen um Formatierung machen zu müssen.

    Du irrst. Mit <code style="white-space:pre"> kann man das gewünschte erreichen.

    Es gibt aber ein Problem:
    Mit dem Schließen eines <pre> Tags, wird ein zusätzlicher Zeilenumbruch gemacht.

    Nein wird es nicht. Es wird der Umbruch vor dem pre Endtag dargestellt. Wenn du das nicht haben willst, unterlasse es.

    Dies mag zwar ohne weiteres nicht auffallen, aber wenn es z.B. in einer Tabelle stelt, ist es nicht zu übersehen (Code hier hinein kopieren):
    <table border="1"><tr><td><pre> clr.b ($FFFFFF8B).w ; clear flag it's set</pre></td></tr></table>

    Ich hab mir überlegt, ob ich es mit spans machen sollte und es funktioniert auch, nur die Zeilenumbrüche lassen mich noch im Stich. "nl2br" mit PHP ignoriert die $ Wörter mit " und schließt die Eingabe mit ' (es ist ein endlos langer Text, also funktioniert ' auch nicht gut).

    Also wäre meine Frage kann man <pre> austricksen, sodass es kein extra Zeilenumbruch macht?

    Nein, die Frage ist ob, nl2br in einem whitespace-pre CSS Kontext richtig ist.
    --

    <(())°>