S
sysop
Guest
Hallo
Für die Ausgabe einer Statistik spiele ich gerade mit Tabellenmöglichkeiten herum. Also, die erste Zeile soll fixiert werden und der Rest der Tabelle soll scrollbar sein. Soweit ja kein Problem.
Nun will ich nicht einfach nur die erste Zeile einer Tabelle fixieren, sondern das ganze auch korrekt ausgeben, sprich die Spalten in Überschrift und Wertebereich in korrekter (gleicher) Breite, was mir schlicht nicht gelingen mag.
Zum Einen stellen die getesteten Browser (Firefox, Midori, ie, Opera) die Spalten in unterschiedlicher Breite da, zum Anderen verstehe ich die Pixel-Abweichungen von thead und tbody nicht.
Der gepostete Code zeigt mir auf einem Debian im Firefox die Spalten 100% korrekt an. Sehe ich mir die Angaben zur Spaltenbreite für Überschrift und Wertebereich an, wird mir übel.
Spalte 1: 140px im Kopfbereich stehen 142px im Wertebereich gegenüber
Spalte 2: 40px im Kopf zu 42px im Wetrtebereich
Spalte 3 240px Kopf zu 242 im Wertebereich
u.s.w
Firefox will also im Wertebereich ständig 2px mehr als im Kopfbereich.
Opera will das wieder ganz anders, der ie ist zum Knicken, wie immer....
Mit der Tatsache dass es einfach nicht will habe ich mich abgefunden, nur würde mich interessieren, WARUM.
Die theoretische Möglichkeit die erste Zeile zu fixieren verliert ihren Reiz, wenn ich für jeden Browser eine eigene CSS-Datei machen muss. Erschwert wird das Ganze noch dadurch, dass ich die Anzahl an Spalten aus der Datenbank auslese und natürlich automatisiert eine Tabelle erstelle. Also eine Funktion für alle Tabellen.
Zuerst der Code (der Einfachheit nur eine Zeile Ergebnisse):
Dass sich bitte niemand wundert, die align Angaben kommen daher, dass die Klasse testet, ob es sich um nummerische Werte handelt oder nicht und entsprechend rechts ausrichtet.
Was kann ich nun noch tun, um die Spaltenbreiten auf eine gemeinsame Einheit zu bringen. Alle Ergebnisse bei Google die mit thead und tbody arbeiten und die erste Zeile fixieren sehen grauslich aus und haben das selbe Problem wie ich.
CSS-Ideen?
Für die Ausgabe einer Statistik spiele ich gerade mit Tabellenmöglichkeiten herum. Also, die erste Zeile soll fixiert werden und der Rest der Tabelle soll scrollbar sein. Soweit ja kein Problem.
Nun will ich nicht einfach nur die erste Zeile einer Tabelle fixieren, sondern das ganze auch korrekt ausgeben, sprich die Spalten in Überschrift und Wertebereich in korrekter (gleicher) Breite, was mir schlicht nicht gelingen mag.
Zum Einen stellen die getesteten Browser (Firefox, Midori, ie, Opera) die Spalten in unterschiedlicher Breite da, zum Anderen verstehe ich die Pixel-Abweichungen von thead und tbody nicht.
Der gepostete Code zeigt mir auf einem Debian im Firefox die Spalten 100% korrekt an. Sehe ich mir die Angaben zur Spaltenbreite für Überschrift und Wertebereich an, wird mir übel.
Spalte 1: 140px im Kopfbereich stehen 142px im Wertebereich gegenüber
Spalte 2: 40px im Kopf zu 42px im Wetrtebereich
Spalte 3 240px Kopf zu 242 im Wertebereich
u.s.w
Firefox will also im Wertebereich ständig 2px mehr als im Kopfbereich.
Opera will das wieder ganz anders, der ie ist zum Knicken, wie immer....
Mit der Tatsache dass es einfach nicht will habe ich mich abgefunden, nur würde mich interessieren, WARUM.
Die theoretische Möglichkeit die erste Zeile zu fixieren verliert ihren Reiz, wenn ich für jeden Browser eine eigene CSS-Datei machen muss. Erschwert wird das Ganze noch dadurch, dass ich die Anzahl an Spalten aus der Datenbank auslese und natürlich automatisiert eine Tabelle erstelle. Also eine Funktion für alle Tabellen.
Zuerst der Code (der Einfachheit nur eine Zeile Ergebnisse):
HTML:
<table class="tbloview">
<thead style="height:24px; display:block;">
<tr>
<td class="thsmall" style="width:140px;"><a href="/inventar/templates/admin/ad_statistik.php?what=2&sort=DESC&field=timestamp" title="aufsteigend">timestamp</a> <img src="img/desc.png" alt="DESC"></td>
<td class="thsmall" style="width:40px;"><a href="/inventar/templates/admin/ad_statistik.php?what=2&sort=DESC&field=adr_id" title="ID">ID</a> <img src="img/spacer.png" alt="DESC"></td>
<td class="thsmall" style="width:240px;"><a href="/inventar/templates/admin/ad_statistik.php?what=2&sort=DESC&field=user_id" title="Gehört">Bearbeitet von</a> <img src="img/spacer.png" alt="DESC"></td>
<td class="thsmall" style="width:39px;"><a href="/inventar/templates/admin/ad_statistik.php?what=2&sort=DESC&field=edit" title="Edit">Edit</a> <img src="img/spacer.png" alt="DESC"></td>
<td class="thsmall" style="width:40px;"><a href="/inventar/templates/admin/ad_statistik.php?what=2&sort=DESC&field=kill" title="">kill</a> <img src="img/spacer.png" alt="DESC"></td>
<td class="thsmall" style="width:40px;"><a href="/inventar/templates/admin/ad_statistik.php?what=2&sort=DESC&field=new" title="Neu">Neu</a> <img src="img/spacer.png" alt="DESC"></td>
<td class="thsmall" style="width:359px;"><a href="/inventar/templates/admin/ad_statistik.php?what=2&sort=DESC&field=info" title="">info</a> <img src="img/spacer.png" alt="DESC"></td>
</tr>
</thead>
<tbody style="height: 400px; overflow: scroll; display: block;">
<tr class="td2ov" onmouseover="this.className='over'" onmouseout="this.className='td2ov'">
<td class="top" align="left" style="width:142px; font-weight:bold;"><span class="tsmall">11.03.2013 [14:54] </span></td>
<td class="top" align="right" style="width:42px;"><span class="tsmall">58 </span></td>
<td class="top" align="left" style="width:242px;"><span class="tsmall">Rechner Fred</span></td>
<td class="top" align="left" style="width:42px;"><span class="tsmall"> </span></td>
<td class="top" align="left" style="width:42px;"><span class="tsmall"> </span></td>
<td class="top" align="right" style="width:42px;"><span class="tsmall">2 </span></td>
<td class="top" align="left" style="width:362px;"><span class="tsmall"><span style="color:red; font-weight:bold;">Neu</span><br><b>monat</b>3<br><b>tag</b>18<br><b>stunde</b>13<br><b>minute</b>30<br><b>Termin</b> 1363609800<br><b>id</b>58<br><b>Info-Text</b> <p>Treffen TripsTrüTralala</p> </span></td>
</tr>
</tbody>
</table>
Dass sich bitte niemand wundert, die align Angaben kommen daher, dass die Klasse testet, ob es sich um nummerische Werte handelt oder nicht und entsprechend rechts ausrichtet.
Was kann ich nun noch tun, um die Spaltenbreiten auf eine gemeinsame Einheit zu bringen. Alle Ergebnisse bei Google die mit thead und tbody arbeiten und die erste Zeile fixieren sehen grauslich aus und haben das selbe Problem wie ich.
CSS-Ideen?