Carl: Zeilenumbruch

Hi

hab mal den Themenbereich als HTML gemacht, obwohl ich mir da nicht ganz sicher bin...
Ich habe ein Kommentarscript. Jetzt ist mir bei der Ausgabe aufgefallen, dass wenn ein wort eine bestimmte länge überschreitet, die Tabelle einfach breiter wird. Ich habe die tabellenbreite in % angegeben.

Hier mal ein Ausschnitt aus dem Quelltext:

<table width="95%" align="center">
 <tr>
  <td width="300" align="center">
   <table border="1" BGCOLOR="#0E0D13" width="300" bordercolor="#7B0003">
    <tr>
     <td width="50%" bgcolor="0D2549" style="font-size: 12px; color: #FFFFFF; margin-right: 0px; margin-left: 0px; padding: 0px; border-collapse: collapse" colspan="1">
      <b>Erstellt von:</b> <? echo "<font color="#6DF1FF">$autor_kom</font>"; ?>
     </td>
     <td width="50%" align="right" bgcolor="0D2549" style="font-size: 12px; color: #6DF1FF; margin-right: 0px; margin-left: 0px; padding: 0px; border-collapse: collapse" colspan="1">
      <? echo "$datum_kom"; ?>
     </td>
    </tr>
    <tr>
     <td width="100%" style="font-size: 12px; color: #FFFFFF;" colspan="2">
      <? echo nl2br("$kommentar_kom"); ?><br>
     </td>
    </tr>
   </table>
  </td>
 </tr>
</table>

Davor gibts halt noch das Auslesen aus der Datenbank.
Wie kann ich denn festlegen, dass bei der Ausgabe, wenn die eigentliche Grenze der Tabelle erreicht ist ein automatischer Zeilenumbruch erfolgt?

Gruss
Carl

  1. Hallo Carl,

    Wie kann ich denn festlegen, dass bei der Ausgabe, wenn die eigentliche Grenze der Tabelle erreicht ist ein automatischer Zeilenumbruch erfolgt?

    siehe http://selfhtml.teamone.de/css/eigenschaften/tabellen.htm#table_layout

    Gruß Gunther

    1. Hallo Gunther

      leider macht er es nicht richtig, der tesxt geht jetzt über die tabellenbegrenzung hinaus, ein zeilenumbruch wird allerdings nicht erzwungen.

      Gruss
      Carl

      1. Hallo Carl,

        leider macht er es nicht richtig, der tesxt geht jetzt über die tabellenbegrenzung hinaus, ein zeilenumbruch wird allerdings nicht erzwungen.

        du benutzst ja nl2br. Kommt denn in deinem String überhaupt ein '\n' vor? Sonst probier's mal mit 'wordwrap'. Ehrlich gesagt ist mir nicht ganz klar warum es keinen Zeilenumbruch gibt. Hast du es schon mal mit print anstatt mit echo versucht?

        Ansonsten poste doch bitte nochmal deinen Original-Quelltext in der aktuellen Fassung.

        Gruß Gunther

        1. Hi

          also so sieht der Sourc aus, wenn ich ihn mir bei der Anzeige der Seite ausgeben lasse:

          <table width="95%" align="center" style="table-layout:fixed">
           <tr>
            <td width="300" align="center">
             <table border="1" BGCOLOR="#0E0D13" width="300" bordercolor="#7B0003" style="table-layout:fixed">
              <tr>

          <td width="50%" bgcolor="0D2549" style="font-size: 12px; color: #FFFFFF; margin-right: 0px; margin-left: 0px; padding: 0px; border-collapse: collapse" colspan="1">
                <b>Erstellt von:</b> <font color="#6DF1FF">YourNightmare</font>     </td>
               <td width="50%" align="right" bgcolor="0D2549" style="font-size: 12px; color: #6DF1FF; margin-right: 0px; margin-left: 0px; padding: 0px; border-collapse: collapse" colspan="1">
                03.03.2003, 11:11     </td>
              </tr>
              <tr>

          <td width="100%" style="font-size: 12px; color: #FFFFFF;" colspan="2">
                Test!<br />
          Test?<br />
          TEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEESSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTT!!<br>
               </td>
              </tr>
             </table>
            </td>

          </tr>
          </table>

          Durch das überlange Test wird die Tabellenbreite gesprengt. Print und wordwrap brachte keine Veränderung.

          Gruss
          Carl

          1. Hi Carl,

            sorry, manchmal steht man eben auch auf der Leitung... ;-)

            Wenn du _ein_ Wort hast, was breiter als die Tabelle ist, kann der Browser das auch nicht umbrechen. Umbrüche erfolgen nur bei Leerzeichen und wo keine sind...

            Ich befürchte, da kannst du dir nur mit einer 'Funktion' behelfen. Problem hierbei ist, dass du vorher in PHP noch nicht weißt, wie breit die Tabellenzelle ist, und wenn du das weißt, der Inhalt schon da ist. Also scheidet die Variante, den String direkt per PHP in die Zelle zu schreiben aus. Gib' ihn stattdessen doch in eine JS-Variable aus, die du dann entsprechend der Tabellenzellengröße ebenfalls per JS 'zerschneidest' und dann anzeigen lässt. Problem hierbei ist allerdings: Wenn du eine True-Type Schriftart verwendest, weißt du auch nicht genau, wie breit dein String letztlich ist (also immer einen gewissen Reserveabstand mit einplanen).

            Gruß Gunther