Maximal mögliche Spaltenbreite erzwingen
F3it][
- html
Hallo zusammen,
Ist es möglich in einer mehrspaltigen (z.B. mit 5 Spalten) Tabelle (mit einer Zeile) einer der beiden Spalten immer den maximalen Wert zuzuweißen, je nach Inhalt einer bestimmten anderen?
Kleines Beispiel:
<table width="500">
<tr>
<td width="100">
</td>
<td>
Spalte mit Text
</td>
<td width="50">
</td>
<td> <!-- Diese Spalte sollte den Rest der Tabellenbreite bekommen -->
</td>
<td width="150">
</td>
</tr>
</table>
Ich hoffe es ist klar geworden was ich meine.
Wenn der Text in Spalte 2 nun z.B. 50 px breit ist, sollte die 4. Spalte die restlichen 150 px breit sein etc..
Denn wenn man in keine der beiden Spalten eine Breite angibt, dann scheint die "verbleibende Breite" irgendwie beliebig aufgeteilt zu sein.. Ist zumindest bei mir so.
MfG,
F3it][
Hallo,
Verstehe ich das richtig, du willst in etwa sowas produzieren?
<tr><td width=100></td><td width=200></td></tr>
<tr><td width=200></td><td width=100></td></tr>
Das geht meineswissens nach nicht. Das Zauberwort heißt Colspan und KGT *s* Also um das Ergebnis des oben beschriebenen Vesuchs zu erreichen machste in etwa so etwas:
<tr><td width=100></td><td width=200 colspan=2></td></tr>
<tr><td width=200 colspan=2></td><td width=100></td></tr>
Diesem Bildnis liegt dann folgende tabellenstruktur zugrunde:
<tr><td width=100></td><td width=100></td><td width=100></td></tr>
Gruß,
S.Goertz
Hallo
Verstehe ich das richtig, du willst in etwa sowas produzieren?
<tr><td width=100></td><td width=200></td></tr>
<tr><td width=200></td><td width=100></td></tr>
Nein, ich will eine EINzeilige Tabelle mit 5 Spalten.
Die Tabelle hat eine feste Größe (ein absoluter Wert), genau wie 3 deren Spalten (ebenfalls absolute Werte).
Nur 2 davon haben keine zugewiesene Breite.
Ich möchte jetzt dass wenn man z.B. einen sehr kurzen Text in die eine dieser beiden Spalten schreibt, dass die andere Spalte dafür um so größer ist.
Wenn der Text in Spalte1 nun aber sehr lang ist, soll eben die andere "flexible" Spalte sehr klein sein.
Also im Prinzip soll eben diese eine Spalte (die, in der kein Text steht) immer genau die Breite bekommen, die der Text in der anderen Spalte nicht ausnützt.
Das geht meines wissens nach nicht.
Das ist meines Wissens nach richtig ;)
Das Zauberwort heißt Colspan und KGT *s*. Also um das Ergebnis des oben beschriebenen Vesuchs zu erreichen machste in etwa so etwas:
<tr><td width=100></td><td width=200 colspan=2></td></tr>
<tr><td width=200 colspan=2></td><td width=100></td></tr>
Das stimmt zwar alles was du da sagst, nur leider ist es nicht die Lösung auf das Problem (s. oben)
Danke trotzdem,
F3it][
Hallo,
Wenn der Text in Spalte1 nun aber sehr lang ist, soll eben die andere "flexible" Spalte sehr klein sein.
Also im Prinzip soll eben diese eine Spalte (die, in der kein Text steht) immer genau die Breite bekommen, die der Text in der anderen Spalte nicht ausnützt.
Hui, ich glaube das habe ich jetzt verstanden. Also ich glaube, dass einige Browser die Spalten automatisch dem Inhalt anpassen. Eine garantie auf die korrekte Darstellung würde ich aber auf keinen Fall geben.
Eine Möglichkeit wäre es, die Länge der beiden Texte mit einer Programmiersprache (ich würd PHP nehmen, aver Javascript geht sicherlich auch!?) auszulesen und in ein Verhältnis zu setzen. Die beiden Spalten können dann die Breiten zugewiesen bekommen, die im selben Verhältnis wie das der beiden Texte stehen.
Also du hast 2 Texte und lässt ein Verhältnis der Längen auslesen. Beispielsweise 2:1. dann nimmst du den gesamtwert der beiden spalten (der sich problemlos errechnen lassen sollte, indem du die gesamtbreite der tabelle nimmst und alle festen spaltenbreiten abziehst), und errechnest die beiden spaltenbreiten.
Gruß,
S.Goertz
Hallo,
stimmt, so würde es gehen denke ich.
Vielen Dank,
F3it][