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)
Methode 1: Verwenden Sie den Befehl SET PASSWORD ...
<br />Vorheriger Artikel: Webdesign-Tutorial...
Inhaltsverzeichnis 1. Prototyp-Beziehung 2. Proto...
Vorwort Vor einiger Zeit ist bei mir ein MySQL-De...
Voraussetzung: Das Webentwickler-Plugin wurde inst...
Inhaltsverzeichnis Zweck des Teleports So funktio...
1. Problembeschreibung root@mysqldb 22:12: [xucl]...
Die Konfigurationssyntax von Nginx ist flexibel u...
Bevor Sie diesen Artikel lesen, hoffe ich, dass S...
Inhaltsverzeichnis 1. Wiederholen 1.1. Shop (Bibl...
1. Von der offiziellen Website herunterladen und ...
Hexo bindet einen benutzerdefinierten Domänenname...
Inhaltsverzeichnis 1. Installation von JDK1.8 unt...
Wildcard-Kategorien: %Prozent-Platzhalter: Gibt a...
Inhaltsverzeichnis Was ist MVCC Mysql-Sperre und ...