Ich habe eine HTML-Tabelle mit 8 Spalten und mehreren Zeilen. Der Inhalt jeder Zelle wird dynamisch generiert, und es ist schwierig, die Breite einer Spalte vorherzusagen. Ich setze die Tabellenbreite = 100%, da ich möchte, dass die Tabelle die gesamte Breite des divs einnimmt. Ich möchte, dass die Spalten 2 bis 8 genauso bleiben wie die Breite, als hätte ich keine Tischbreite eingestellt. Dann möchte ich, dass die erste Spalte ihre Breite erweitert, so dass die Tischbreite 100% wird. Ist das möglich?Haben erste Spalte in HTML-Tabelle flexibel, wenn Tabelle Breite = 100%
Antwort
Setzen Sie explizite Breiten für 2 - 8 und Zelle 1 bestimmt ihre eigene Breite mit dem verbleibenden Platz. Sie können auch den Zeilenumbruch für das Leerzeichen in der ersten Zelle festlegen, damit der Inhalt nicht umgebrochen wird, sondern die Zelle zwingen, bei Bedarf zu wachsen.
Ich denke, Ihre Frage ist nicht vollständig, weil wörtlich gelesen, die Antwort ist, keine Spaltenbreiten überhaupt setzen. Jede Spalte nimmt so viel Platz wie möglich, und sie verteilen sie irgendwie untereinander.
Können Sie klarstellen, was Sie erreichen möchten?
<div>
<table width="100%">
<tr>
<td width="100%"></td> <- this is col 1
<td></td><td></td><td></td><td></td><td></td><td></td><td></td> <- cols 2-8
</tr>
</table>
</div>
durch die erste Zelle auf 100%, wird es diese Zelle zwingen, um zu versuchen, so weit wie möglich zu sein, während immer noch die Breiten des Restes der Zellen zu respektieren. Wenn die Zellen 2-8 Text enthalten, können Sie hinzufügen, dass der Text in diesen Zellen nicht umbrochen wird, weil die erste Zelle versucht, 100% Breite zu haben.
Legen Sie eine Breite auf dem Tisch und auf allen anderen Spalten fest; die restliche Spalte wird den ganzen Spielraum einnehmen.
Der Trick besteht darin, table-layout: fixed
Stil zu verwenden, so dass der automatische Layouterätzungsalgorithmus (und IEs besonders schlechte Interpretation davon) nicht einschreitet und durcheinander bringt, wenn größere Mengen als erwartet in einer Spalte enthalten sind.
Im festen Layout-Modus legt die erste Zeile der Zellen oder <col>
Elemente die Breite fest; Weitere Reihen beeinflussen die Breiten nicht. Dies beschleunigt das Rendern. Sie sollten für jede Tabelle ein festes Layout verwenden.
<table>
<col class="name" /><col class="data" /><col class="data" /><col class="data" />
<col class="data" /><col class="data" /><col class="data" /><col class="data" />
<tr>
<td>tiddle om pom pom</td>
<td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td>
</tr>
</table>
table { width: 100%; table-layout: fixed; }
col.data { width: 2em; }
- 1. html Tabelle erste Spalte Breite nicht respektieren Pixel Breite
- 2. Breite: 100% vs max-Breite: 100%
- 3. iTextSharp Tabelle Breite 100% der Seite
- 4. Tabelle brechen Max-Breite von 100%
- 5. Tabelle mit maximaler Breite enthält keine Zellendaten der Breite 100%
- 6. Warum ist diese Tabelle nicht Breite 100%
- 7. Bootstrap 100% Breite/Volle Breite
- 8. Wie 100% Breite für die letzte Spalte nur in HTML und CSS zu haben?
- 9. Dynamische Breite der Tabelle wie in der Spalte
- 10. XSL-FO dynamische Tabelle Spalte Breite
- 11. ListView ItemTemplate 100% Breite
- 12. Textfeld innerhalb der Tabelle wächst über 100% Breite (nur IE)
- 13. CSS: 100% Breite und Hintergrund?
- 14. Html Breite 100%
- 15. Breite: 100% Ausgabe
- 16. Iframe-Video 100% Breite
- 17. Feste Breite in Tabelle
- 18. 100% Breite Twitter Bootstrap 3 Vorlage
- 19. JavaScript Get Tabelle ohne erste Spalte
- 20. Ways erste Spalte der Tabelle durch
- 21. Responsive Tabelle macht das Layout über 100% hinaus gehen Breite
- 22. 100% Breite Tabelle & Div nicht genau die gleiche Größe
- 23. erhalten überlappende Datensätze, wenn 2 Tabellen eine überlappende Spalte haben
- 24. BigQuery Abfrage erste verfügbare Spalte
- 25. Ken Burns Plugin 100% Breite
- 26. 100% Breite Hintergrundbild oben abgeschnitten
- 27. CSS Flexbox Breite 100% Firefox
- 28. CSS-Zentrierung mit 100% Breite
- 29. Dynamische Breite der Tabelle div
- 30. Hintergrundbild ist nicht 100% Breite
Ich weiß, dass, wenn ich überhaupt keine Spaltenbreiten einstellen, der Browser den zusätzlichen Platz durch die Spalten verteilen wird. Das Problem ist, dass ich möchte, dass all dieser zusätzliche Platz in Spalte 1 geht. – Brian