Table und Colgroup
lixx
- html
Hallo!
Ich benötige etwas Hilfe bei einer Tabelle. Sie sieht in etwa so aus.
----------------------------------
| caption |
----------------------------------
| |
| Inhalt über 8 Zellen |
| |
----------------------------------
| |th | th |th | th | |
----------------------------------
|abc | 1 | 1| 1| 1 | 1| 1| 4|
-------------- -------------------
|abc | 1 | 1| 1| 1 | 1| 1| 4|
----------------------------------
|abc | 1 | 1| 1| 1 | 1| 1| 4|
----------------------------------
Der HTML-Code ist folgendermassen aufgebaut:
----------
<table cellspacing="0" cellpadding="2" border="1" rules="groups">
<caption>...</caption>
<colgroup width="100%"></colgroup><colgroup width="0*" span="3"></colgroup><colgroup width="0*" span="3"></colgroup><colgroup width="0*" />
<tbody>
<tr>
<td colspan="8"><img src="img.gif" alt="..." title="..." width="560" height="180" /></td>
</tr>
</tbody>
<tbody>
<tr>
<th>...</th>
<th scope="col">...</th>
<th colspan="2" scope="col">...</th>
<th scope="col">...</th>
<th colspan="2" scope="col">...</th>
<th scope="col">...</th>
</tr>
<tr>
<th scope="row">...</th>
<td>...</td>
<td>...</td>
<td>...</td>
<td>...</td>
<td>...</td>
<td>...</td>
<td>...</td>
</tr>
[...]
</tbody>
</table>
----------
Nun passiert - natürlich wieder nur im Explorer - dass die Zelle "Inhalt über 8 Zellen" über den Rand hinausschießt. Sprich er nimmt aus der colgroup die 100% für die erste Zelle und plaziert die restlichen dahinter, obwohl die Zelle ein colspan hat. Mehrere colgroup's kann man doch meines Wissens nicht definieren.
Was kann ich dagegen machen?
Bitte um Hilfe!
lg lixx
Hallo Dieter!
Schau dir doch bitte erst mal an, wie man colgroup richtig benutzt.
Ich habe mich daran gehalten und weiß nicht was daran falsch sein soll. Man könnte sich noch über den Sinn der Zelle "Inhalt über 8 Zellen" streiten ... aber sonst ... Die erste Zelle bildet eine Gruppe, dann zwei mal die nächsten drei und dann noch die letzte.
lg lixx
Yerf!
<colgroup width="100%"></colgroup><colgroup width="0*" span="3"></colgroup><colgroup width="0*" span="3"></colgroup><colgroup width="0*" />
Hm, die erste Spalte ist so breit wie die Tabelle (100%) und die restlichen Spalten sollen eine Breite von 0 (0* ???) haben, komischer Aufbau...
An die Breite von 0 wird sich ein Browser ohne table-layout:fixed wohl nicht halten, solange Inhalt in diesen Zellen vorhanden ist.
Was kann ich dagegen machen?
Sinnvolle Werte für die Breiten verwenden?
Gruß,
Harlequin
Hallo Harlequin!
Yerf!
Was heißt denn das?
<colgroup width="100%"></colgroup><colgroup width="0*" span="3"></colgroup><colgroup width="0*" span="3"></colgroup><colgroup width="0*" />
Hm, die erste Spalte ist so breit wie die Tabelle (100%) und die restlichen Spalten sollen eine Breite von 0 (0* ???) haben, komischer Aufbau...
An die Breite von 0 wird sich ein Browser ohne table-layout:fixed wohl nicht halten, solange Inhalt in diesen Zellen vorhanden ist.
Gedacht ist eben, dass sich alle Spalten, ausser der ersten, sich die Breite nehmen, die sie benötigen (0* nicht 0), und die erste Spalte den Rest. Auch wenn's 100% sein soll. Bei anderen Tabellen funktioniert das wunderbar. Diese haben aber auch keine Zelle in der ersten Zeile, die über die gesamte Breite geht. Das Problem ist auch nur im IE (wie immer).
Und table-layout:fixed ist auch nicht das was ich will. Sie sollen ja von der Breite her flexibel bleiben.
lg lixx
Ich krieg wirklich langsam die Kriese!
In der ersten Zelle befindet sich ja ein Bild.
<td colspan="8"><img src="img.gif" alt="..." title="..." width="560" height="180" /></td>
Wenn ich das Bild um ein paar Pixel verkleinere
<td colspan="8"><img src="img.gif" alt="..." title="..." width="520" height="180" /></td>
dann funktioniert es wieder.
Das kann es doch wirklich nicht sein!
lg lixx
Yerf!
Was heißt denn das?
Im Prinzip einfach nur "Hallo"
Gedacht ist eben, dass sich alle Spalten, ausser der ersten, sich die Breite nehmen, die sie benötigen (0* nicht 0), und die erste Spalte den Rest. Auch wenn's 100% sein soll. Bei anderen Tabellen funktioniert das wunderbar. Diese haben aber auch keine Zelle in der ersten Zeile, die über die gesamte Breite geht. Das Problem ist auch nur im IE (wie immer).
Ah, ok... dass "0*" hab ich im SelfHTML-Artikel nicht gefunden, deshalb wusste ich nicht genau, wie das wirkt und hab das falsch angenommen. Aber so ergibt sich schon ein Sinn dahinter. Aber ich denke trotzdem, dass Problem ist die 100%-Angabe. Was passiert, wenn Du diese weglässt? Eigentlich sollte eine Spalte ohne Breitenangabe autmatisch den Rest nehmen.
Und table-layout:fixed ist auch nicht das was ich will. Sie sollen ja von der Breite her flexibel bleiben.
Dass war eher auf darauf Bezogen, die Spalten auf Breite 0 zu zwingen. Der tatsächlichen Wirkung von "0*" steht diese Angabe eigentlich exakt entgegengesetzt...
Gruß,
Harlequin
Yerf!
Was heißt denn das?
Im Prinzip einfach nur "Hallo"
Da würd' mich jetzt aber interessieren, wie man das ausspricht.
Aber ich denke trotzdem, dass Problem ist die 100%-Angabe. Was passiert, wenn Du diese weglässt?
Na die Zellen breiten sich über die gesamte Breite aus ... ungewünscht.
Nach mehreren erfolglosen Versuchen habe ich meine bereits hohe Ablehnung gegenüber dem IE kurzerhand weiter erhöht und das ganze anderst gelöst, indem ich den Inhalt der ersten Zeile ausserhalb von der Tabelle eingefügt habe.
Aber danke für deine Hilfe.
lg lixx
Yerf!
Da würd' mich jetzt aber interessieren, wie man das ausspricht.
naja... wie'n Fuchs halt ;-)
Nach mehreren erfolglosen Versuchen habe ich meine bereits hohe Ablehnung gegenüber dem IE kurzerhand weiter erhöht und das ganze anderst gelöst, indem ich den Inhalt der ersten Zeile ausserhalb von der Tabelle eingefügt habe.
Browser und Tabellen sind ein endloses Thema... ich hab da auch schon öfter Verzweifelt. Besonders "kreativ" war bei mir da aber immer der Opera.
Gruß,
Harlequin