Hilfe gesucht: Spaltenbreite fixieren

  • Hallo,

    ich neu hier und hoffe darauf, jemanden zu finden, der mir helfen kann, denn in zwei Foren ist man mit meinem Problem nicht weiter gekommen.

    Ich möchte eine Tabelle erstellen, deren Spaltenbreite einen festen Wert haben soll, also keinen Mindest- oder Maximalbreite, sondern exakt eine Breite, bei der sich nichts mehr verschiebt.

    Da ich 120 Einzeltabellen untereinander platzieren muß, ist es wichtig, daß die Daten alle untereinander (ohne Verschiebungen) stehen. Bei der Tabelle (siehe unteren Quellcode) verschieben sich die Spalten in der Breite (nach rechts), dass soll aber nicht sein.

    Leider kann ich keine grosse Tabelle dafür gebrauchen, da immer neue Datensätze, die in einer neuen Tabelle eingefügt werden müssen, dazukommen und chronologisch geordnet werden müssen.

    Siehe:
    http://pink-camel.de.tl/Setlists.htm

    Ich muss unbedingt an meiner Seite weiterarbeiten und benötige deshalb eure Hilfe.

    Vielen Dank im Voraus
    Michael


    hier nun der Quellcode für die Tabelle (aus Übersichtsgründen nur eine Zeile):

    <table border="1" width="736">
    <tbody>
    <tr>
    <td width="20">&nbsp;</td>
    <td valign="top" width="140" align="left">&nbsp;&nbsp;</td>
    <td width="20">&nbsp;</td>
    <td valign="top" width="26" align="center">&nbsp;</td>
    <td valign="top" width="180" nowrap="nowrap" align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>
    <td width="11">&nbsp;</td>
    <td valign="top" width="39" align="center">&nbsp;</td>
    <td width="44">&nbsp;</td>
    <td valign="top" width="26" align="center">&nbsp;</td>
    <td valign="top" width="180" align="left">&nbsp;</td>
    <td width="11">&nbsp;</td>
    <td valign="top" width="39" align="center" style="text-align: center">&nbsp;</td>
    </tr>
    </tbody>
    </table>
    <br />
    <br />

  • 1) Benutze CSS für das Design (ist immer besser)
    2) Lass den Blödsinn mit den &nbsp;, damit ist es klar, warum es sich verschiebt. Wozu sind die da?

    Something big is coming. And there will be pirates and ninjas and unicorns...

  • 1) Benutze CSS für das Design (ist immer besser)
    2) Lass den Blödsinn mit den &nbsp;, damit ist es klar, warum es sich verschiebt. Wozu sind die da?


    Leider bin ich absoluter html-Anfänger und hab auch von CSS keinen blassen Schimmer, doch hier hab ich mal was zusammengeschuster, doch ich komme nicht weiter mit den Spaltenbreiten. Die Zeilen verhalten sich auch anders und werden schmäler, wenn ich eine neue hinzufüge. Und der fette Rahmen müsste auch verschwinden, damit diese Tabelle meiner Tabelle ähnelt.

    Bitte kannst Du mir "Oldie" den folgenden Code umarbeiten?

    Ich wäre Dir wirklich sehr sehr dankbar.

    Spaltenbreiten: 20,140,20,26,180,11,39,44,26,180,11,39 Gesamt= 736


    Hier der neue Code:

    <table border="1" width="554" style="width: 554px; table-layout: fixed; height: 113px">
    <colgroup><col width="67" /></colgroup><colgroup><col width="75" /></colgroup><colgroup><col width="41" /></colgroup>
    <tbody>
    <tr>
    </tr>
    <tr>
    </tr>
    <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td align="right">&nbsp;</td>
    <td align="right">&nbsp;</td>
    </tr>
    <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td align="right">&nbsp;</td>
    <td align="right">&nbsp;</td>
    </tr>
    <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td align="right">&nbsp;</td>
    <td align="right">&nbsp;</td>
    </tr>
    <tr>
    </tr>
    <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td align="right">&nbsp;</td>
    <td align="right">&nbsp;</td>
    </tr>
    <tr>
    </tr>
    <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td align="right">&nbsp;</td>
    <td align="right">&nbsp;</td>
    </tr>
    </tbody>
    </table>

    2 Mal editiert, zuletzt von Aristillus (30. März 2010 um 00:17)

  • Tut mir lied.
    Für Umschreiben habe ich leider keine Zeit. Ich muss in drei Wochen meine Diplomarbeit abgeben.

    http://de.selfhtml.org/css/eigenschaften/index.htm
    Schau dich dort ein bisschen um.
    Da findest du (fast) alles, was man mit CSS machen kann.

    Wie man CSS genau verwendet, findest du da:
    http://de.selfhtml.org/css/formate/index.htm

    Something big is coming. And there will be pirates and ninjas and unicorns...




  • Schade, ich habs versucht, komm aber nicht klar. Mir erschließt sich die Logik nicht.

    Ich wünsche Dir alles Gute für Deine Diplom-Arbeit.

  • Du kannst die Spalte in der größe nicht festsetzen, wenn du was breiteres reinmachst - wird die Spalte nunmal größer. Deine Spalten sind auch winzig... Hier:

  • Du kannst die Spalte in der größe nicht festsetzen, wenn du was breiteres reinmachst - wird die Spalte nunmal größer. Deine Spalten sind auch winzig... Hier:


    Wie kommst Du darauf, dass man Spaltenbreiten nicht fixieren kann?
    Ich bin html-Neuling und hab es trotzdem geschafft.

    Und übrigens: Einige meiner Spalten sind deshalb so schmal, da sie mir als "Trennspalte"
    also "Leerspalte" dienen. Diese stehen dann zwischen zwei Spalten in denen Daten eingetragen sind. Soviel Phantasie sollte man schon haben.

    Hier der Code zur den fixen Spaltenbreiten:

    <table border="0" width="850" align="center" height="20" style="table-layout: fixed">
    <colgroup><col width="140" /></colgroup><colgroup><col width="20" /></colgroup><colgroup><col width="26" /></colgroup><colgroup><col width="255" /></colgroup><colgroup><col width="40" /></colgroup><colgroup><col width="44" /></colgroup><colgroup><col width="26" /></colgroup><colgroup><col width="255" /></colgroup><colgroup><col width="40" /></colgroup>
    <tbody>
    <tr>
    <td valign="top" align="left">&nbsp;</td>
    <td>&nbsp;</td>
    <td valign="top" align="center">&nbsp;</td>
    <td valign="top" align="left">&nbsp;</td>
    <td>&nbsp;</td>
    <td valign="top" align="center">&nbsp;</td>
    <td>&nbsp;</td>
    <td valign="top" align="center">&nbsp;</td>
    <td valign="top" align="left">&nbsp;</td>
    <td align="right">&nbsp;</td>
    <td valign="top" align="center">&nbsp;</td>
    </tr>
    </tbody>
    </table>

  • Ich habs bereits erklärt, sobald du ein größeres Element reinhaust (z.B. ein Bild), wird die Spalte größer gezogen. Könnte evtl. mit nem overflow:hidden; funktionieren, aber ob es bei Tabellen funktioniert wage ich mal zu bezweifeln.
    /edit: getestet, overflow: hidden; bewirkt nichts bei einer Tabellenzeile.

    /P.S. "Soviel Phantasie sollte man schon haben." , stimmt, dafür braucht man Phantasie weil es ne sehr dreckige Art ist :rolleyes: . Sowas löst man mit Cellpadding / Spacing oder padding Attributen bei dem Element, dass sich in der Zelle befindet.
    Solltest vllt auch nochmal überdenken, dass du bevor ich gepostet hab es nicht hingekriegt hast und ich dir hier die fertige Tabelle präsentiert habe.

    Diesen <colgroup> quatsch kannst du auch ruhig weglöschen, weil es für einzelne Zellen gar nicht gedacht ist - dafür gibts width ! Die Zellen in der nächsten Zeile richten sich automatisch nach der vorherigen (sonst wärs ja keine richtige Tabelle - oder?)

    4 Mal editiert, zuletzt von Grevas (31. März 2010 um 16:14)