Thomas Müller: <Div>-Frage

Hi zusammen,

ich habe eine Frage, die Ihr sicher beantworten könnt:

Ich frage aus einer Datenbank Datensätze ab. Diese möchte ich auf einer Seite anzeigen lassen. In einer Config-Datei kann man angeben, wieviele Datensätze nebeneinander angezeigt werden sollen, bevor eine neue Zeile anfängt. Mit einer Tabelle und dann <tr> wollte ich es nicht lösen. Ich wollte es eben mit <div> machen.
Wie kann ich so etwas mit <div> realisieren?

Gruß
Thomas

  1. Hallo Thomas

    In einer Config-Datei kann man angeben, wieviele Datensätze nebeneinander angezeigt werden sollen, bevor eine neue Zeile anfängt.

    Verstehe ich Dich richtig:
    Jeder Datensatz besteht aus einer Spalte. Du möchtest nun mehrere nebeneinander darstellen, damit die Darstellung übersichtlicher wird?

    Mit einer Tabelle und dann <tr> wollte ich es nicht lösen. Ich wollte es eben mit <div> machen.

    Warum?
    Für tabellarische Daten gibt es nichts besseres als eine Tabelle.

    Vielleicht könntest Du Dein Anliegen präzisieren, damit wir Dir besser helfen können.

    Freundliche Grüße

    Vinzenz

    1. Verstehe ich Dich richtig:
      Jeder Datensatz besteht aus einer Spalte. Du möchtest nun mehrere nebeneinander darstellen, damit die Darstellung übersichtlicher wird?

      Genau, richtig!

      Vielleicht könntest Du Dein Anliegen präzisieren, damit wir Dir besser helfen können.

      Ich arbeite mit Templates. Und möchte sämtlichen Code strikt vom Design trennen. Wenn ich nun aber eine Tabelle nehme, brauche ich für diese Ausgabe 4 Templates. Und zwar so aufgebaut:

      template 1:
      <table><tr>

      template 2:
      <td>DATENSATZ</td>

      template 3(umbruch)
      </tr><tr>

      template 4:
      </tr></table>

      Und das ist mir zu umständlich. Ansonsten müsste ich doch wieder <html> in meinen Code einfügen. Aber das will ich eben nicht.
      Vielleicht denke ich auch falsch und Du kennst eine besser Lösung?

      Gruß
      Thomas

      1. Wenns tabellarische Daten sind mach sie auch in einer Tabelle. Alles andere kann zu unerwünschten Ergebnissen führen (Z.B. geringere Auflösung => dir reissts die Spalten auseinander usw.).

        Außerdem ist es nicht schön allein aufgrund "Faulheit" anstatt einer (in diesem Fall) semantisch korrekten Tabelle ein Div Konstrukt zu nehmen.

        Das ist in etwa das gleiche wie wenn man eine Liste als Tabellenkonstrukt realisiert (*würg*)

        Und das ist mir zu umständlich. Ansonsten müsste ich doch wieder <html> in meinen Code einfügen. Aber das will ich eben nicht.
        Vielleicht denke ich auch falsch und Du kennst eine besser Lösung?

        Gruß
        Thomas

  2. Hallo Thomas,

    gibt den div-Elementen float: left;.
      Lass dir in einer Schleife die Datensätze ausgeben und füge nach jeder 5ten Zeile einen Zeilenumbruch ein:
        if ($i % 5 == 0) { print '<br />'; }

    - Till

    1. Lass dir in einer Schleife die Datensätze ausgeben und füge nach jeder 5ten Zeile einen Zeilenumbruch ein:
          if ($i % 5 == 0) { print '<br />'; }

      Ja, das wäre ein Möglichkeit. So hätte ich nur 2 Templates.

      Gruß
      Thomas

      1. Thomas,

        ich benutze auch _nur_ Templates und ich habe bis jetzt noch keine
          kleinere Lösung gefunden : )

        - Till

    2. Das ist n bissel unsinnig....
      Es kommt hier zwar n Zeilenumbruch, aber der muß nicht unbedingt unter den anderen Divs enden wenn die Container entsprechend hoch sind...

      Machs lieber richtig:

      x mal n div mit float:left;
      dann als "Umbrecher" n div mit nem clear:left;

      ...dann klappts auch mit dem Nachbarn.

      Hallo Thomas,

      gibt den div-Elementen float: left;.
        Lass dir in einer Schleife die Datensätze ausgeben und füge nach jeder 5ten Zeile einen Zeilenumbruch ein:
          if ($i % 5 == 0) { print '<br />'; }

      - Till