Jeena Paradies: <br> in <pre> "ausschalten"

Hallo,

Ich habe mir in einer Software durch nen mini hack die möglichkeit eingebaut quellcode zu posten. Doch leider sieht das Ergebnis so aus:

<pre>foo<br />  
bar</pre>

Jetzt suche ich nach einer Möglichkeit mit CSS dieses unnötige <br /> innerhalb von <pre> wegzumachen. Ich habe schon alles mögliche an Versteckmöglichkeiten ausprobiert, von display: none; über position: absolute; und line-height: 0; aber nichts hat geholfen. Weiß jemand einen Trick?

Mit JavaScript könnte ich das wohl recht einfach rausfischen, aber das wird ja erst so spät gefeuert. Und innerhalt von <pre> mit einem Regex alle <br /> rausfischen (also schon serverseitig) klappt bisher auch nicht wirklich sinnvoll (bisher).

Ich habe aber nicht wirklich lust darauf die ganze Software umzuschreiben, denn dann wäre es wohl einfacher das selbst neu zusammenzuhacken.

Grüße
Jeena Paradies

--
Social Webapps wer nutzt sie? | Jlog | Gourmetica Mentiri
  1. Hallo,

    Im Chat hat man mir zu preg_replace_callback() geraten und das funktioniert prima:

    <?php  
    $line = '  
    foo  <br />  
    bar [mycode]  
        ich bin es<br />  
     weil ich will  
     und du nicht<br />  
    [/mycode]  
    hallo  <br />  
    test';  
      
    $line = preg_replace_callback(  
           '#\[mycode\](.+?)\[/mycode\]#is',  
           create_function(  
               '$matches',  
               'return "<pre>".str_replace("<br />", "", $matches[1])."</pre>";'  
           ),  
           $line  
       );  
      
    echo $line;  
    ?>
    

    Grüße
    Jeena Paradies

    --
    Social Webapps wer nutzt sie? | Jlog | Gourmetica Mentiri
  2. hi,

    <pre>foo<br />

    bar</pre>

    
    >   
    > Jetzt suche ich nach einer Möglichkeit mit CSS dieses unnötige <br /> innerhalb von <pre> wegzumachen. Ich habe schon alles mögliche an Versteckmöglichkeiten ausprobiert, von display: none; über position: absolute; und line-height: 0; aber nichts hat geholfen. Weiß jemand einen Trick?  
      
    display:none; sorgt bei mir in Opera 8.54, Firefox 1.5 und IE 6 dafür, dass bar direkt unter foo steht, ohne noch eine weitere freie Zeile dazwischen.  
      
    
    > Und innerhalt von <pre> mit einem Regex alle <br /> rausfischen (also schon serverseitig) klappt bisher auch nicht wirklich sinnvoll (bisher).  
      
    Klingt auch nicht so problematisch - wie sieht dein Versuch aus?  
      
    gruß,  
    wahsaga  
      
    
    -- 
    /voodoo.css:  
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    
    1. Hallo,

      display:none; sorgt bei mir in Opera 8.54, Firefox 1.5 und IE 6 dafür, dass bar direkt unter foo steht, ohne noch eine weitere freie Zeile dazwischen.

      Bei mir hat das im Firefox 2.x nicht gefruchtet also habe ich gar nicht in anderen Browsern geschaut.

      Klingt auch nicht so problematisch - wie sieht dein Versuch aus?

      Jo habe ich jetzt auch mit recht einfachen Mitteln hinbekommen.

      Grüße
      Jeena Paradies

      --
      Social Webapps wer nutzt sie? | Jlog | Gourmetica Mentiri
  3. Hallo.

    Das Problem ist, dass Dir <br /> angezeigt wird? Oder der Zeilenumbruch?

    Für die Anzeige des Breaks hätte ich vielleicht eine Lösung: Baue Dir doch Dein eigenes <pre>...</pre> als DIV oder so. Damit würde innerhalb des Elements anderes HTML ausgewertet bzw. per CSS formatierbar.
    Könnte klappen.

    Grüße aus Würzburg
    Julian

    1. Hallo,

      Das Problem ist, dass Dir <br /> angezeigt wird? Oder der Zeilenumbruch?

      Das zwischen foo und bar eine Leerzeile eingefügt wurde.

      Für die Anzeige des Breaks hätte ich vielleicht eine Lösung: Baue Dir doch Dein eigenes <pre>...</pre> als DIV oder so. Damit würde innerhalb des Elements anderes HTML ausgewertet bzw. per CSS formatierbar.

      Das klappt leider nicht, da die leerzeichen ganz am anfang jeder Zeile nicht einfach verschwinden dürfen.

      Grüße
      Jeena Paradies

      --
      Social Webapps wer nutzt sie? | Jlog | Gourmetica Mentiri