Wann wird die Tabelle eingesetzt? Tabellen werden heute für das Gesamtlayout einer Webseite in der Regel nicht mehr verwendet. Bei bestimmten spezifischen Designs, wie etwa bei der Formulareingabe oder Datenpräsentation, können Tabellen jedoch die beste Wahl sein. Der intuitivste Eindruck einer Tabelle besteht darin, dass es sich um ein Element handelt, das aus mehreren ordentlich angeordneten Zellen besteht und bei dem die Zeilen und Spalten klar erkennbar sind. Dies kann mit Excel in Verbindung gebracht werden. Aus der Position von Excel in der Datenverarbeitung und Statistik können wir die Bedeutung von Tabellen auf Webseiten verstehen. Einfach ausgedrückt erleichtert die Verwendung einer Tabelle die Arbeit erheblich, wenn Sie intuitiv spüren, dass mehrere Elemente in Zeilen und Spalten angeordnet sind. Die folgende Tabelle wird beispielsweise bei caniuse.com verwendet: Berechnung des Tabellenlayouts Die Verwendung einer Tabelle ist einfach, manchmal entspricht der Endzustand der einzelnen Raster in der Tabelle jedoch nicht Ihren Wünschen. Wenn beispielsweise einige Zellen Zeilenumbrüche aufweisen, wird die gesamte Tabelle aufgrund der Zeilenumbrüche sehr unansehnlich aussehen. Insbesondere bei Tabellen, die zur Datenpräsentation verwendet werden, ist die Breitenzuweisung ein sehr wichtiges Thema. Möglicherweise müssen Sie die Gesamtbreite der Tabelle basierend auf den Daten, die in jeder Spalte dargestellt werden können, sorgfältig berechnen. Dies liegt daran, dass die Tabelle ihre eigenen Layoutmerkmale hat. Sie folgt bestimmten Prinzipien und ihr tatsächliches Layout wird durch Berechnung bestimmt. Als Nächstes untersucht dieser Artikel anhand eines tatsächlichen Tabellentestbeispiels, wie die Tabelle ihr eigenes Layout berechnet. Dieser Artikel behandelt nur die gebräuchlichsten Verwendungsmöglichkeiten von Tabellen und deckt nicht alle Situationen ab. Verschiedene Browser interpretieren einige Tabellenkonzepte unterschiedlich, die Layoutberechnungen sind jedoch grundsätzlich gleich (falls es Unterschiede gibt, werden diese gesondert erwähnt). Die unten verwendeten Testtabellen sehen alle folgendermaßen aus (der Inhalt stammt aus Zero Tracks): Gleichzeitig setzt die Tabelle border-collapse:collapse; und border-spacing:0;. Dies ist auch die gebräuchlichste Art, Tabellen anzuwenden. Normalize.css verwendet diesen Teil als Initialisierungsdefinition. Die im <table>-Element definierte CSS-Eigenschaft „table-layout“ bestimmt den Algorithmus, der von der Tabelle zum Berechnen des Layouts verwendet wird. Es gibt zwei Werte: „Auto“ und „Fest“. Im Allgemeinen wird der Standardwert „auto“ verwendet. Der Unterschied zwischen diesen beiden Algorithmen besteht darin, ob die Breitenanordnung der Tabelle mit dem Dateninhalt in der Tabelle zusammenhängt. In diesem Artikel werden die Berechnungsprinzipien des Tabellenlayouts für diese beiden Wertetypen erläutert. Das Merkmal des automatischen Tabellenlayouts besteht darin, dass das Breitenlayout der Tabelle mit dem gesamten Dateninhalt in der Tabelle zusammenhängt. Es muss den gesamten Tabelleninhalt abrufen, bevor das endgültige Breitenlayout bestimmt und dann zusammen angezeigt wird. Es scheint, dass der entscheidende Punkt die „Inhaltsrelevanz“ ist. Was passiert, wenn für die Tabelle eine feste Breite (hier 500 Pixel) definiert ist und für alle Zellen keine Breite definiert ist (es wird nur die durch CSS definierte Breite besprochen)? Schauen wir uns die Ergebnisse an: In der obigen Tabelle sind die leeren Teile mit Leerzeichen aufgefüllt. Nach dem Vergleich können wir folgende Punkte feststellen: Die Spalten 2 und 3 sind gleich breit. Die einzelnen Zellen haben keine festgelegte Breite, die Breiteneinteilung wird also vollständig durch die jeweiligen Inhaltsdaten (Textinformationen) bestimmt. Wie sind solche Ergebnisse zu erklären? Sie können zunächst intuitiv die folgende Logik ableiten: Schritt 1: Wählen Sie aus jeder Spalte die Spalte mit dem größten Textinhalt (unter der Voraussetzung, dass keine Zeilenumbrüche vorhanden sind und die vom Text eingenommene Breite am größten ist) als „Repräsentant“ aus. Lassen Sie uns unter Berücksichtigung der obigen Logik einen Blick auf die vorherige Tabelle werfen. Ergibt sie nicht einen gewissen Sinn? Beachten Sie, dass zuvor gesagt wurde, dass das Breitenverhältnis „scheinbar“ 2:1 beträgt. Was wäre das? Schauen wir uns eine Version ohne Polsterung an: Verwenden Sie das Front-End-Debugging-Tool, um die Breite der Zellen oben genauer zu betrachten. Sie werden feststellen, dass sich diese Tabelle von der vorherigen unterscheidet und das Verhältnis sehr nahe bei 2:1 liegt (ja, dieses kleine bisschen liegt an der Umrandung, aber ohne die Umrandung kann man die Spalten nicht unterscheiden). Es ist ersichtlich, dass bei der Analyse des Breitenverhältnisses die Inhaltsbreite, die Polsterung und der Rahmen berücksichtigt werden. Daran erkennt man auch, dass nicht die Anzahl der Zeichen gemessen wird, sondern die Breite, die die Zeichen ohne Umbruch einnehmen können (das 2:1 rührt hier daher, dass chinesische Schriftzeichen gleich breit sind). Die Verwendung der Polsterung dient natürlich nur dazu, den Tisch schöner zu machen :). Was passiert, wenn eine Breitendefinition vorhanden ist? Hier ist eine Tabelle mit einigen Zellen, deren Breiten definiert sind: Der entsprechende HTML-Code lautet: XML/HTML-CodeInhalt in die Zwischenablage kopieren
Folgende Punkte können Sie der obigen Tabelle entnehmen: Die tatsächliche Breite einer Zelle, die auf 5px eingestellt ist, beträgt 13px, was genau der Breite eines einzelnen chinesischen Zeichens entspricht. Die Zellen mit chinesischen Zeichen in derselben Spalte ordnen den Text in der Form der minimalen Zellenbreite an (also der Zeilenumbrüche). Die Schlussfolgerung hieraus ist, dass, wenn sowohl Spalten mit als auch ohne Breitendefinitionen vorhanden sind: Wenn die definierte Breite einer Zelle kleiner ist als die minimale Anordnungsbreite ihres Inhalts (die Breite, die für die Zelle erforderlich ist, wenn im Gegensatz zur nicht umbrochenen Anordnung so viele Zeilen wie möglich in der Zelle angeordnet sind), wird die Spalte, in der sich die Zelle befindet, den Inhalt in der minimalen Anordnung darstellen. Die Spalte ganz vorne, die keine Breitendefinition hat, kann als Fall 1 angesehen werden. Hier haben einige Spalten Breitendefinitionen, andere nicht, was als Fall 2 angesehen werden kann. Hier ist Fall 3, wenn für alle Spalten Breiten definiert sind: Entsprechender HTML-Code: XML/HTML-CodeInhalt in die Zwischenablage kopieren
In der obigen Tabelle wurde das Padding entfernt, damit die Werte eindeutig durch die Breite definiert werden können, wodurch sich für die drei Spalten ein Breitenverhältnis von 2:1:1 ergibt. Hierbei gilt noch eine weitere Bedingung: Die Breite des Inhalts in der Zelle darf den definierten Breitenwert nicht überschreiten. Nach Tests verhalten sich IE7 und niedrigere Versionen anders als andere Browser, wenn der Inhalt die definierte Breite überschreitet. Aus diesem Tabellenbeispiel können wir erkennen, dass, wenn alle Spalten Breitendefinitionen haben und die Summe der Werte dieser Breitendefinitionen kleiner als die Breite der Tabelle ist, die Tabelle ihnen nach der Zuweisung der Breiten entsprechend ihren Breitendefinitionswerten weiterhin die verbleibende Breite entsprechend ihrem Breitenverhältnis zuweist. Oben finden Sie eine Analyse von drei Situationen, in denen das automatische Tabellenlayout verwendet wird und die Tabelle selbst eine feste Breite definiert. Wenn die Tabelle selbst keine Breite definiert, gibt es weitere Situationen, und diese hängen mit dem enthaltenden Block (Details) der Tabelle zusammen. Wenn sich in Zukunft eine geeignete Gelegenheit ergibt, werden wir dies erneut besprechen (die sogenannte Artikellänge ist begrenzt ...). Das Merkmal des festen Tabellenlayouts besteht darin, dass das Breitenlayout der Tabelle unabhängig vom Dateninhalt in der Tabelle ist. Es müssen nur die Informationen der ersten Zeile der Tabelle empfangen werden, um das endgültige Breitenlayout zu bestimmen und mit der Anzeige zu beginnen. Das feste Tabellenlayout ist „inhaltsunabhängig“ und betont die „erste Zeile“. Schauen Sie sich das folgende Tabellenbeispiel an: Entsprechender HTML-Code: XML/HTML-CodeInhalt in die Zwischenablage kopieren
Die Logik des festen Tabellenlayouts ist viel einfacher und wird wie folgt ausgedrückt: Übernehmen Sie nur die Informationen der ersten Zeile und ignorieren Sie den Inhalt aller Zellen nach der ersten Zeile und die Breitendefinition Beachten Sie außerdem, dass Sie bei Verwendung eines festen Tabellenlayouts eine Breite für das Tabellenelement definieren müssen. Wenn die Breite nicht definiert ist (d. h. der Standardwert „auto“), verwendet der Browser stattdessen ein automatisches Tabellenlayout. Tatsächlich gibt es noch weitere Elemente, die sich auf Tabellen beziehen, wie etwa <colgroup>, <thead>, <tfoot>, <caption> usw., aber sie werden für den häufigsten Gebrauch nicht benötigt. Vielmehr werden sie auch bei der Berechnung des Tabellenlayouts berücksichtigt. Wenn man dann noch den Fall der Zellenzusammenführung hinzufügt, können Sie sich wahrscheinlich vorstellen, wie kompliziert Tabellenlayoutberechnungen sind. Im W3C-Dokument wird erwähnt, dass die Berechnung des Tabellenlayouts (automatisches Tabellenlayout) noch keine Spezifikation ist. Eine W3C-Beschreibung der Tabellenlayoutberechnungen finden Sie unter „Tabellenbreitenalgorithmen“. Tatsächlich ist es nicht sehr praktikabel, derart detaillierte Rückschlüsse auf die Berechnungsprinzipien des Tabellenlayouts zu ziehen. Es wäre lediglich hilfreich, diese Informationen als Referenz zu haben, wenn Sie die Einzelheiten ausarbeiten müssen, obwohl solche Gelegenheiten selten sind. Aus dem Inhalt dieses Artikels können wir jedoch eine aussagekräftigere Schlussfolgerung ziehen: Wenn die Tabelle die Breite definiert und nicht alle Zellen die Breite definieren, versucht die automatische Layouttabelle ihr Bestes, um zu verhindern, dass alle Ihre Daten umbrechen. Wenn Sie auf eine Situation stoßen, in der sich das Umbrechen auf das Erscheinungsbild auswirkt, bedeutet dies, dass Sie die Daten rationalisieren oder die Ränder reduzieren müssen, anstatt zu versuchen, die Breitenzuweisung selbst neu vorzunehmen. Dieses Mal, wenn ich diese Art von tatsächlicher Messung und Schlussfolgerung durchführe, denke ich, dass es leichter zu verstehen wäre, wenn ich es je nach der spezifischen Situation ausführlich erkläre, anstatt es auf einmal systematisch und vollständig darzustellen. Vielleicht kann man es als Sprachübung betrachten? |
<<: Detaillierte Anwendungsfälle von MySql Escape
>>: Detaillierte Erklärung der Dreieckszeichnung und clevere Anwendungsbeispiele in CSS
In diesem Artikel wird der spezifische Code des b...
1. Einleitung Ich habe vor Kurzem die Prinzipien ...
Nach der Installation eines Centos8-Dienstes unte...
herunterladen Offizieller MySQL-Download, wählen ...
Inhaltsverzeichnis Vorwort 1. Neue Partitionen vo...
Dieser Artikel enthält die Zusammenfassung des JS...
Inhaltsverzeichnis 1. Übersicht 2. Attribute 1. M...
Häufig gestellte Fragen Der Zugriff für den Benut...
Hintergrund: Da der Server das Flask-Projekt bere...
Inhaltsverzeichnis Vorwort 1. Grundkenntnisse zu ...
Dieser Artikel verwendet die Lizenzvereinbarung „...
Wenn an Ihren Server eine Anforderung zum Anzeige...
Datenträger automatisch erkennen Konfigurationssc...
Ich beschäftige mich seit über einem Jahr mit Java...
Das Ändern oder Löschen einer Datenbank kann zu D...