Wie man eine HTML-Tabelle (in einem fixed-width-div) Anpassung an die Breite der Zellen statt dessen den container?
Ich möchte folgende Tabelle, in der die Anpassung der Breite der Zellen, statt dessen container:
<div style='width: 700px; border: 1px solid red;'>
<table border="1" style='table-layout: fixed;'><tbody>
<tr>
<th style="" colspan="3">Group 1</th>
<th style="" colspan="5">Group 2</th>
<th style="" colspan="4">Group 3</th>
</tr>
<tr>
<th style="width: 62px;">A</th>
<th style="width: 200px;">B</th>
<th style="width: 62px;">C</th>
<th style="width: 62px;">D</th>
<th style="width: 62px;">E</th>
<th style="width: 62px;">F</th>
<th style="width: 62px;">G</th>
<th style="width: 62px;">H</th>
<th style="width: 62px;">I</th>
<th style="width: 100px;">J</th>
<th style="width: 62px;">K</th>
<th style="width: 68px;">L</th>
</tr>
</tbody></table>
</div>
Die Breite des Containers ist geringer als die Summe der Zelle Breite. Es ist okay, um zu zeigen, horizontale Bildlaufleiste hier, aber die Tabelle kann einfach nicht breiter sein als die seines Containers. Wenn ich die Berechnung der Summe der Breite für die colspan und die Tabelle, es kann die Arbeit zu tun, aber was ist, wenn die Zellen mit nicht-px Breite, wie "%" oder "em"? Dann statische px Berechnung nicht arbeiten kann.
Aktuellen Effekt ist:
Der erwartete Effekt wäre der Tisch Breite von mehr als der div-container ist die Breite.
Aber wenn Sie die Breite direkt in die Tabelle hat auch Probleme: die Breite einstellen für Zellen werden ignoriert. Zum Beispiel:
<div style='width: 700px; border: 1px solid red;'>
<table border="1" style='table-layout: fixed; width: 900px;'><tbody>
<tr>
<th style="" colspan="3">Group 1</th>
<th style="" colspan="5">Group 2</th>
<th style="" colspan="4">Group 3</th>
</tr>
<tr>
<th style="width: 62px;">A</th>
<th style="width: 200px;">B</th>
<th style="width: 62px;">C</th>
<th style="width: 62px;">D</th>
<th style="width: 62px;">E</th>
<th style="width: 62px;">F</th>
<th style="width: 62px;">G</th>
<th style="width: 62px;">H</th>
<th style="width: 62px;">I</th>
<th style="width: 100px;">J</th>
<th style="width: 62px;">K</th>
<th style="width: 68px;">L</th>
</tr>
</tbody></table>
</div>
Der Effekt ist:
Hinweis: die 2. Zelle (sollte 200px) ist so schmal wie der 1. und 3. einem.
Jeder kann etwas Licht auf dieses Problem? Vielen Dank im Voraus.
Du musst angemeldet sein, um einen Kommentar abzugeben.
hinzufügen von css:
und entfernen
style='table-layout: fixed; width: 1px;'
aus der TabelleWürden Positionierung der Tabelle absolut acceptible?
Dies funktioniert so, dass der div nicht mehr enthält, die Tabelle horizontal. Aber, natürlich, das div auch nicht mehr mit der Tabelle senkrecht. Sie könnten dies umgehen, indem Sie die div-Höhe manuell ein, wenn.
Merijn die Antwort, die funktioniert, optimiert, leicht, für die fixed-width-Zellen Gehäuse:
Anstatt der Angabe eines globalen th min-width geben Sie es pro Zelle etwa so:
Zumindest diese Weise, Ihre individuelle Breite der nicht ignoriert werden, so dass Sie eine Tabelle breiter ist als der container, und mit unregelmäßiger Breite Zellen.