Problembeschreibung In unseren Projekten sind horizontale Tische üblich, manchmal fertigen wir je nach Bedarf aber auch vertikale Tische an. Beispielsweise die vertikale Tabelle unten: Wenn wir ein solches Rendering sehen, ist unser erstes, das UI-Framework zu verwenden und einige Änderungen vorzunehmen, um das Problem zu lösen. Allerdings bietet Ele.me UI kein direktes Beispiel dafür. Einige Schüler möchten möglicherweise die el-table in Ele.me UI verwenden, um Zeilen und Spalten zu verschmelzen und dies zu erreichen. Tatsächlich wird es problematisch, wenn Sie dies tun. Beispielsweise die folgenden zusammengeführten Zeilen und Spalten: Für derartige Renderings müssen Sie nicht unbedingt UI-Komponenten verwenden. Manchmal können Sie dafür auch native Methoden verwenden. Im Gegenteil, es wird bequemer sein. Dieser Artikel stellt zwei Möglichkeiten zur Implementierung einer solchen einfachen vertikalen Tabelle vor. Das tatsächliche Szenario ist möglicherweise komplizierter, aber wie gesagt: Solange Sie eine Vorstellung haben, ist das kein großes Problem. Der Schlüssel zum Programmieren liegt im Denken: Methode 1 (native Methode) wird nicht empfohlenDie Idee ist: Zeichnen Sie den Tabellenstil selbst und verwenden Sie Floating, um sie von links nach rechts anzuordnen <Vorlage> <div id="app"> <ul Klasse="proWrap"> <template v-for="(Element, Index) in Daten"> <li Klasse="proItem" :Schlüssel="index"> <span>{{ Artikeltitel }}</span> <span>{{ item.value == "" ? "Wird vervollständigt" : item.value }}</span> </li> </Vorlage> </ul> </div> </Vorlage> <Skript> Standard exportieren { Daten() { zurückkehren { Daten: [ { Titel: "Wichtigkeitsstufe", Wert: "666", }, { Titel: "Vorverkaufsstatus", Wert: "666", }, { Titel: "Kooperationsstatus", Wert: "", }, { Titel: "Vorverkaufsstatus", Wert: "", }, { Titel: „Status der technischen Vereinbarung“, Wert: "", }, { Titel: "Gewinnender Bieter", Wert: "", }, { Titel: "Kooperationsstatus", Wert: "", }, { Titel: „Zeit für Kooperationsfeedback“, Wert: "", }, ], }; }, Methoden: {}, }; </Skript> <style lang="less" scoped> #app { Breite: 100 %; Mindesthöhe: 100vh; Box-Größe: Rahmenbox; Polsterung: 50px; .proWrap { Breite: 100 %; Rand: 1px durchgezogen #e9e9e9; Rand rechts: 0; Rahmen unten: 0; // Wie viele Gruppen kommen in jede Zeile? Hier dividieren wir durch eine bestimmte Zahl.proItem { Breite: 100 % / 3; float: left; // nach links schweben, Spanne { Anzeige: Inline-Block; Breite: berechnet (50 % – 2 Pixel); Höhe: 50px; Zeilenhöhe: 50px; Textausrichtung: zentriert; Rahmen rechts: 1px durchgezogen #e9e9e9; Rahmen unten: 1px durchgezogen #e9e9e9; } span:n-tes-Kind(1) { Hintergrund: #fafafa; } } // Float löschen. Andernfalls verschwindet der äußerste linke Rand&::after { Inhalt: ""; Anzeige: Block; klar: beides; } } } // Entferne den Standardstil von li { Listenstiltyp: keiner; } </Stil> Methode 2 (mithilfe von Rasterlayoutkomponenten) wird empfohlenEs ist bequemer, das mit Ele.me gelieferte Rastersystem zu verwenden. Wir können die Anzahl der Gruppen festlegen, die in jeder Zeile erscheinen, indem wir das :span-Attribut von el-col steuern. Wenn mehr Gruppen vorhanden sind, werden sie automatisch umbrochen. Den Stil des Tisches können wir selbst bestimmen. Diese Methode ist sehr einfach. Angehängter Code: <Vorlage> <div id="app"> <el-col :span="wieBreite" v-for="(Element, Index) in tableArr" :key="index"> <div Klasse="Box"> <div class="content1">{{ Artikel.Schlüssel }}</div> <div class="content2">{{ item.value == "" ? "Wird vervollständigt" : item.value }}</div> </div> </el-col> </div> </Vorlage> <Skript> Standard exportieren { Daten() { zurückkehren { Tabellenanordnung: [ { Schlüssel: "Name", Wert: "Sun Wukong", }, { Schlüssel: "Alter", Wert: 500, }, { Taste: "Höhe", Wert: "So hoch wie ein Berg", }, { Schlüssel: "Geschlecht", Wert: "Männlich", }, { Schlüssel: "Adresse", Wert: „Wasservorhanghöhle im Huaguo-Berg“, }, { Schlüssel: "Bildung", Wert: „Bildungshintergrund von Tian Ting Bi Ma Wen“, }, { Schlüssel: "Fähigkeit", Wert: "Stark", }, { Schlüssel: "Spitzname", Wert: „Der große Weise“, }, ], Breite: 8, }; }, Methoden: {}, }; </Skript> <style lang="less" scoped> #app { Breite: 100 %; Mindesthöhe: 100vh; Box-Größe: Rahmenbox; Polsterung: 50px; .Kasten { Breite: 100 %; Höhe: 40px; Anzeige: Flex; Rahmen links: 1px durchgezogen #e9e9e9; Rahmen oben: 1px durchgezogen #e9e9e9; .Inhalt1 { Breite: 40%; Höhe: 40px; Zeilenhöhe: 40px; Textausrichtung: zentriert; Hintergrundfarbe: #fafafa; Rahmen rechts: 1px durchgezogen #e9e9e9; Rahmen unten: 1px durchgezogen #e9e9e9; Farbe: #333; Schriftgröße: 14px; } .Inhalt2 { Breite: 60%; Höhe: 40px; Zeilenhöhe: 40px; Textausrichtung: zentriert; Hintergrundfarbe: #fff; Rahmen rechts: 1px durchgezogen #e9e9e9; Rahmen unten: 1px durchgezogen #e9e9e9; Farbe: #b0b0b2; Schriftgröße: 14px; } } } </Stil> Damit ist dieser Artikel über die Analyse zweier Möglichkeiten zur Implementierung vertikaler Tabellen in Vue-Projekten abgeschlossen. Weitere relevante Inhalte zu vertikalen Vue-Tabellen finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: Speicher-Engine und Protokollbeschreibung basierend auf MySQL (ausführliche Erklärung)
Inhaltsverzeichnis Schritte zum Erstellen von TCP...
Clickhouse-Einführung ClickHouse ist ein spalteno...
Dieser Artikel stellt die Methode zur Implementie...
Technischer Hintergrund Latex ist ein unverzichtb...
Vor kurzem traten bei der Installation von Apache...
Inhaltsverzeichnis Vorwort Optionale Verkettung N...
In diesem Artikelbeispiel wird der spezifische Ja...
1. Überprüfen Sie nach der Verbindung und Anmeldu...
Inhaltsverzeichnis 1. Kommunikationsmethode zwisc...
Zusammenfassung Docker-Compose kann problemlos me...
Zunächst einmal: Was ist ein Schriftsymbol? Oberf...
In diesem Artikel wird der spezifische Code von T...
MySQL ist ein relationales Datenbankverwaltungssy...
Vorwort: Dieser Artikel stellt hauptsächlich den ...
Mysql-Abfragezeitraum-Schnittmenge Anwendungsszen...