Tabelle mit table-layout: fixed; und wie man eine Spalte breiter
Also ich habe eine Tabelle mit diesem Stil:
table-layout: fixed;
Bei der alle Spalten die gleiche Breite. Ich möchte eine Spalte (die erste) breiter zu sein und dann den rest der Spalten zu besetzen, um die Verbleibende Breite der Tabelle mit gleich breiten.
Wie zu erreichen?
CSS:
table {
border-collapse: collapse;
width: 100%;
border: 1px solid black;
background: #ddd;
table-layout: fixed;
}
table th, table td {
border: 1px solid #000;
}
table td.wideRow, table th.wideRow {
width: 300px;
}
HTML:
<table class="CalendarReservationsBodyTable">
<thead>
<tr>
<th colspan="97">Rezervovane auta</th>
</tr>
<tr>
<th class="corner wideRow">Auto</th>
<th class="odd" colspan="4">0</th>
<th class="" colspan="4">1</th>
<th class="odd" colspan="4">2</th>
<th class="" colspan="4">3</th>
<th class="odd" colspan="4">4</th>
<th class="" colspan="4">5</th>
<th class="odd" colspan="4">6</th>
<th class="" colspan="4">7</th>
<th class="odd" colspan="4">8</th>
<th class="" colspan="4">9</th>
<th class="odd" colspan="4">10</th>
<th class="" colspan="4">11</th>
<th class="odd" colspan="4">12</th>
<th class="" colspan="4">13</th>
<th class="odd" colspan="4">14</th>
<th class="" colspan="4">15</th>
<th class="odd" colspan="4">16</th>
<th class="" colspan="4">17</th>
<th class="odd" colspan="4">18</th>
<th class="" colspan="4">19</th>
<th class="odd" colspan="4">20</th>
<th class="" colspan="4">21</th>
<th class="odd" colspan="4">22</th>
<th class="" colspan="4">23</th>
</tr>
</thead>
<tbody>
<tr>
<td class="alignRight wideRow">KE-260 FC - Octavia combi</td>
<td class=" borderLeft"></td>
<td class="odd"></td>
<td class=""></td>
<td class="odd"></td>
<td class=" borderLeft"></td>
<td class="odd"></td>
<td class=""></td>
<td class="odd"></td>
<td class=" borderLeft"></td>
<td class="odd"></td>
<td class=""></td>
<td class="odd"></td>
<td class=" borderLeft"></td>
<td class="odd"></td>
<td class=""></td>
<td class="odd"></td>
<td class=" borderLeft"></td>
<td class="odd"></td>
<td class=""></td>
<td class="odd"></td>
<td class=" borderLeft"></td>
<td class="odd"></td>
<td class=""></td>
<td class="odd"></td>
<td class=" borderLeft"></td>
<td class="odd"></td>
<td class=""></td>
<td class="odd"></td>
<td class=" borderLeft"></td>
<td class="odd"></td>
<td class=""></td>
<td class="odd"></td>
<td colspan="16" class="highlighted borderLeft" title="Richard Knop">
Richard Knop
</td>
<td class=" borderLeft"></td>
<td class="odd"></td>
<td class=""></td>
<td class="odd"></td>
<td class=" borderLeft"></td>
<td class="odd"></td>
<td class=""></td>
<td class="odd"></td>
<td class=" borderLeft"></td>
<td colspan="14" class="highlighted" title="Richard Knop">
Richard Knop
</td>
<td class="odd"></td>
<td class=" borderLeft"></td>
<td class="odd"></td>
<td class=""></td>
<td class="odd"></td>
<td class=" borderLeft"></td>
<td class="odd"></td>
<td class=""></td>
<td class="odd"></td>
<td class=" borderLeft"></td>
<td class="odd"></td>
<td class=""></td>
<td class="odd"></td>
<td class=" borderLeft"></td>
<td class="odd"></td>
<td class=""></td>
<td class="odd"></td>
<td class=" borderLeft"></td>
<td class="odd"></td>
<td class=""></td>
<td class="odd"></td>
<td class=" borderLeft"></td>
<td class="odd"></td>
<td class=""></td>
<td class="odd"></td>
</tr>
</tbody>
</table>
jsfiddle: http://jsfiddle.net/6p9K3/
Ankündigung der ersten Spalte, ich will, dass es 300px
breit.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sie konnte nur geben Sie die erste Zelle (also Spalte) eine Breite haben und der rest standardmäßig
auto
CSS:
HTML:
oder alternativ der "richtige Weg", um die Spaltenbreite möglicherweise die Verwendung der die
Spalte
- element sichCSS:
HTML:
col
Technik ohnehin tut: **siehe aktualisierte fiddle - und mit dem colspan-Methode können Sie dann auf eine andere Spaltenbreite als erforderlich zuthead
die Breite sollte auf seinenth
<table><caption>...</caption><tbody>....</tbody></table>
Die wichtigste Sache des table-layout: fixed ist, dass die Spaltenbreiten festgelegt werden, indem die erste Zeile der Tabelle.
So
wenn Sie Ihre Tabellenstruktur ist wie folgt (standard-Tabelle Struktur)
wenn Sie möchten, geben Sie eine Breite der zweiten Spalte, dann
Bitte schauen, dass wir den Stil der th nicht den td.
Erstellen Sie eine sehr große Tabelle (Hunderte von Zeilen und Spalten)? Wenn dem so ist,
table-layout: fixed;
ist eine gute Idee, wie der browser braucht nur zu Lesen, die erste Zeile, um zu berechnen und das ganze Renderntable
, damit es schneller geladen.Aber wenn nicht, würde ich vorschlagen, dumping
table-layout: fixed;
und ändere deine css wie folgt:http://jsfiddle.net/6p9K3/1/
td
erstreckt sich über die vierth
s so:<div style="width:80px;">Richard Knop</div>
Legen Sie diewidth
um die Summe aller einzelnentd
s. Siehe hier jsfiddle.net/6p9K3/2Was Sie tun könnten, ist so etwas wie diese (pseudocode):
Grundsätzlich der Aufteilung der Tabelle in zwei Tabellen habe und es enthalten von einem anderen Tisch.