petra: text mehrspaltig

hallo

gibt es eine Möglichkeit Text mehrspaltig mit automatischen Umbruch auszurichten? Über CSS?

  1. Hallo,

    gibt es eine Möglichkeit Text mehrspaltig mit automatischen Umbruch auszurichten? Über CSS?

    Wenn Du schon von Spalten sprichst und Dein Themengebiet HTML ist, wieso nicht <table> ?

    MfG
    MarkX.

    1. in einer Tabelle bricht der text doch nicht automatisch. ich müsste dann den text manuell in die nächste spalte setzen.

      vielleicht gibts ja eine möglichkeit in html oder css.

      1. Hallo,

        ich hjabe mir da auch schon Mal einen abgebrochen, das wenigstens in PHP als Funktion zu erstellen. Ist aber gar nicht einfach, da man auch Tags im Zeichenfluß hat und verschiedene Schriftgrößen, Margins und Paddings und Breaks etc. vorhanden sein können.

        Ich denek, da muss der ganze Apparat des Browsers beschäftigt werden, um das auszurechen. Wenn es wenigstens eine Möglichkeit gäbe, die tatsächlcihe Höhe eines DIV oder eines Table abzufragen (mit JS) dann wäre man ja schon einen Schritt weiter.

        Einspaltige Grüße

        Tom

        1. Aber vielleicht kann man über div tags sagen das es Spalten gibt -schön wär ja das dann auch noch automatisch angepasst auf die textlänge.
          und dann halt die Spalten in eine bestimmten Breite und Höhe und Spaltenabstand. ---- mmmh vielleicht findet sich hier ja noch hilfe

          1. Meinst Du vielleicht so was in der Art ?

            http://www.smokinggun.com/code/sg_layout.php

            Ist aber experimentell und noch nicht ausgereift.

            1. Ja das meine ich. - Und mal gucken obs so funktioniert. :) danke

          2. Hallo Petra,

            mehr ist bisher nicht dabei herausgekommen:

            ---------------------------------------------------------------
            function split_text($spaltenzahl,$text)
            {
              $spalten=array();
                if (intval($spaltenzahl < 1))
              {
                $spaltenzahl=1;
              }

            $spaltennr=1;

            $text = strip_tags($text,"<br>");
              $textlen = strlen($text);
              $textpos = 0;
              $in_tag = false;

            while ($textpos < $textlen)
              {
                while ($textpos < (intval($textlen/$spaltenzahl)*$spaltennr))
                {
                  if (!$in_tag)
                  {
                    if ($text[$textpos]=="<")
                    {
                     $in_tag=true;
                    }
                    $spalten[$spaltennr].=$text[$textpos];
                    $textpos++;

            while (!$in_tag and ($text[$textpos]) and (strpos(" -<",$text[$textpos])===false))
                    {
                      $spalten[$spaltennr].=$text[$textpos];
                      $textpos++;
                    }
                  }

            if ($in_tag)
                  {
                    do
                    {
                      $spalten[$spaltennr].=$text[$textpos];

            if ($text[$textpos]==">")
                      {
                        $in_tag = false;
                      }
                      $textpos++;
                    }
                    while ($in_tag and ($textpos < $textlen));
                  }
                }
                $spaltennr++;
              }

            #  for ($spaltennr=0; $spaltennr < $spaltenzahl, $spaltennr++)
            #  {
            #    $spalten[$spaltennr] = htmlentities($spalten[$spaltennr]);
            #  }

            return $spalten;
            }

            Vielleicht kann man ja einen Wettbewerb starten: Wer schreibt die beste Funktion? Diese ist nicht so doll, aber besser, als gar keine.

            Grüße

            Tom

      2. Hallo,

        in einer Tabelle bricht der text doch nicht automatisch.

        Doch, das tut er, wenn du der Zelle eine bestimmte Breite zuweist.

        ich müsste dann den text manuell in die nächste spalte setzen.

        Das verstehe ich jetzt nicht so recht.
        Soll das dein Ergebnis sein:
        +-----+-----+-----+
        |Text1|Text2|Text3|
        +-----+-----+-----+

        oder das hier:
        +-----+-----+-----+
        |Das  |ist  |Text |
        +-----+-----+-----+

        ?

        Grüße
        Torsten

        1. +-----+-----+-----+
          |Das  |ist  |Text |
          +-----+-----+-----+

          So sollte das aussehen.

        2. +-----+-----+-----+
          |Das  |ist  |Text |
          +-----+-----+-----+

          So sollte das aussehen.

          Aber dann natürlich in eine bestimmten breite und höhe der spalten.

          1. Hallo,

            +-----+-----+-----+
            |Das  |ist  |Text |
            +-----+-----+-----+
            So sollte das aussehen.

            Vom Ansatz her würde ich es so machen:
            <table width="100%">
              <colgroup>
                <col width="1*">
                <col width="1*">
                <col width="1*">
              </colgroup>
              <tr>
                <td>Das</td><td>ist</td><td>Text</td>
              </tr>
              ...
            </table>

            Den Sinn sehe ich allerdings noch nicht so recht :-)

            Grüße
            Torsten

            1. Hallo Torsten,

              ich glaube, du hast den eigentlichen Knackpunkt noch nicht erfasst.

              Vom Ansatz her würde ich es so machen:
              <table width="100%">
               [...]
              </table>

              Den Sinn sehe ich allerdings noch nicht so recht :-)

              Es ist eigentlich ganz einfach: Ein fortlaufender Textabschnitt soll automatisch von einer Spalte in die nächste umgebrochen werden, so wie z.B. im mehrspaltigen Zeitungssatz. Und wenn ich Petra richtig verstanden habe, soll das auch noch dynamisch je nach Höhe und Breite der Spalten hin- und herformatiert werden. Bestimmt kennst du den Effekt von verschiedenen Textverarbeitungen, wo du den Text auch nur fortlaufend eingibst und die Software selbständig den Umbruch auf zwei oder mehr Spalten macht.

              Aber eine Lösung scheint es in HTML wohl nicht zu geben... :(

              Gruß,

              Martin

              1. Hallo Martin,

                ich glaube, du hast den eigentlichen Knackpunkt noch nicht erfasst.

                Dann ist die Antwort von Petra in [pref:t=62085&m=350587] auf meine Frage in [pref:t=62085&m=350581] nicht die richtige gewesen :-)

                Aber eine Lösung scheint es in HTML wohl nicht zu geben... :(

                Wenn es so gemeint ist, wie du es dargestellt hast, muss ich dir Recht geben. Allerdings ist nach meinem Dafürhalten HTML nicht dafür gedacht, ein Printlayout 1:1 umzusetzen.

                Grüße
                Torsten

                1. Hallo.

                  Allerdings ist nach meinem Dafürhalten HTML nicht dafür gedacht, ein Printlayout 1:1 umzusetzen.

                  Diese Tatsache hat aber wenig mit mit der Sinnhaftigkeit der Möglichkeit des Einsatzes von Mehrspalten-Layouts zu tun.
                  MfG, at

  2. Hi,

    gibt es eine Möglichkeit Text mehrspaltig mit automatischen Umbruch auszurichten? Über CSS?

    Nein, derzeit nicht.
    Es ist aber geplant: http://www.w3.org/TR/2001/WD-css3-multicol-20010118/
    Dies ist aber erst ein Arbeitsentwurf, noch lange kein Standard.
    Und wenn es erstmal Standard ist, muß es auch noch in den Browsern implementiert werden...

    cu,
    Andreas

    --
    Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
    http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
  3. gibt es eine Möglichkeit Text mehrspaltig mit automatischen Umbruch auszurichten? Über CSS?

    Nur der Vollständigkeit halber:
    In Netscape bis Version 4 ist das machbar:
    http://selfhtml.teamone.de/html/text/proprietaer.htm#mehrspaltig

    Aber das wird wohl kaum mehr jemanden interessieren ;)

    dbenzhuser

    --
    sh:( fo:| ch:? rl:( br:$ n4:° ie:| mo:) va:) de:[ zu:) fl:( ss:| ls:[ js:(