Hi,
Folgendes sei gegeben:
- Ein <ul> mit display:table,
- darin n <li> mit display:table-row,
- darin jeweils zwei bis drei <span> mit display:table-cell.
Bis hierhin ist das (unter der Prämisse, dass die Funktionsweise in einem Gecko ausreicht) noch problemarm. Man mag darüber streiten, ob <dl> die bessere Semantik wäre; ich hatte <ul> gewählt, was sich als günstig erwies. Nun die Schwierigkeit:
Es ist der seltene Fall denkbar, dass ein <li> mit nur einem Kind auftaucht; sei dies ein <span> oder #PCDATA, das <li> ist dann eh mit einer Klasse gekennzeichnet. Dieses Kind soll nun über die ganze Zeile gehen - sprich: es soll nicht die erste Spalte verbreitern. Auf welchem Weg auch immer. Innerhalb eines <table> würde man mit colspan arbeiten, dort ist es aber auch eine klar strukturelle Information. Hier könnte die vorhandene Struktur jedoch auch völlig anders dargestellt werden, so dass eine entsprechende Angabe in HTML nicht in Frage kommt (davon abgesehen, dass es auch nicht möglich wäre). Ich habe halt keine tabellarischen Daten, sondern eine tabellarische Darstellung.
Die CSS-Spezifikation bis einschl. CSS/3.0 sieht diesen Fall offenbar nicht vor. Meine Versuche, das Problem über display:table-* u.ä. zu lösen, waren erfolgfrei[1]. Hinweise des W3C, mit float zu arbeiten, brachten ebenfalls nichts[2]; und absolute Positionierung scheidet aus, weil ich die Höhe des Elements nicht kenne und daher die nachfolgenden Zeilen nicht verschieben kann. Unnötig zu sagen, dass eine Netzsuche ebenfalls nichts ergab :-) Was ich noch nicht versucht habe, ist Mozillas chrome-Dateien zu durchsuchen, ob ich dort zufällig auf eine Lösung z.B. mit -moz-Eigenschaften stoße - ehrlich gesagt verspreche ich mir davon aber auch nicht viel, und der Aufwand ist recht groß.
Wie kann ich das Problem lösen? Leichte Veränderungen an der Struktur sind möglich, aber z.B. eine Transformation steht nicht zur Debatte. Irgendwelche Ideen, Tipps oder Links?
Cheatah
[1] Genauer: Ich behelfe mich derzeit mit display:table-caption, was aber arg einschränkend ist.
[2] Innerhalb der Tabellendarstellung war es effektfrei, und die Darstellung komplett auf Floating umzustellen kommt nicht in Frage, da die Spaltenbreite flexibel ist und in jeder Zeile identisch sein muss.
X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
X-Will-Answer-Email: No
X-Please-Search-Archive-First: Absolutely Yes