ich habe eine Tabelle die aus einer reihe (tr) besteht und aus ganz vielen spalten (td) besteht. Jedes td hat eine fixe breite von 10px. Die breite der Tabelle ist nicht definiert bzw. auto. Damit wird die breite der Tabelle durch die Anzahl der td's bestimmt. Bei 10 td's wäre die Tabelle demnach 100px breit. Das funktioniert auch wie erwartet.
Die Anzahl der td's ist dynamisch und Tabelle kann dadurch recht breit werden. Also will ich die Tabelle in ein div mit fester breite packen und das ganze auf overflow:auto setzen.
Erwartetes Ergebnis: wird die Tabelle größer als das div kann ich horizontal scrollen.
Pustekuchen. Die Tabelle wird nicht größer als das div, sondern die einzelnen Zellen werden kleiner 10px. Die Breitenangabe der Zellen wird also ignoriert und die Tabelle auf 100% breite gesetzt.
Die Frage ist,warum ist das so? Welche Regel greift da? Und viel wichtiger ist, wie mache ich es das so geht wie ich es gerne hätte?
Hier ein bisschen beispielcode:
html
- Code: Alles auswählen
<div id="wrapper">
<table id="forecast-table" cellspacing="0" cellpadding="0" border="0" >
<tr>
<td class="day-forecast" bgcolor="lightgrey"></td>
<td class="day-forecast" bgcolor="lightgrey"></td>
<td class="day-forecast" bgcolor="lightgrey"></td>
.
.
.
<td class="day-forecast" bgcolor="lightgrey"></td>
<td class="day-forecast" bgcolor="lightgrey"></td>
<td class="day-forecast" bgcolor="lightgrey"></td>
</tr>
</table>
</div>
css
- Code: Alles auswählen
#wrapper { width: 500px; overflow: auto; background: #efefef; }
td { height: 20px; width: 10px; white-space: nowrap; }

