Teammitglieder online
Regeln und nützliche Hinweise
Neueste Themen
» Die Heidekriger (WaCa) mit Punktesystemvon Rama So 21 Apr 2024 - 20:44
» Forum löschen, Probleme mit Gründeraccount
von Skouliki Di 9 Apr 2024 - 14:03
» [AwsomeBB] LogIn Farbe Weiß auf weiß
von Skouliki Sa 30 März 2024 - 21:14
» kann man noch Blogs hier erstellen?
von Joost Mi 27 März 2024 - 18:40
» Einstellen der Profilfelder funktioniert nicht
von Skouliki Di 26 März 2024 - 12:54
» Gründer-E-Mail-Adresse ändern
von Skouliki Mo 25 März 2024 - 13:48
» PN's werden nicht mehr rot eingefärbt
von Skouliki Fr 22 März 2024 - 7:44
» Missbrauchsmeldung "Sexueller Inhalt" war (wieder) Werbung/Spam/Scam
von Skouliki Do 21 März 2024 - 9:03
» [phpBB3] Suchfunktion ohne Funktion
von Skouliki Mi 20 März 2024 - 8:41
» Neuer User kann sich anmelden.
von Skouliki Mi 20 März 2024 - 8:38
» Zugangsdaten vergessen/verloren
von Joost Sa 16 März 2024 - 21:07
» Schwierigkeiten mit BBCode
von Skouliki Fr 15 März 2024 - 11:51
» Entdeckt die neue Option Servimg Premium
von Joost Mi 6 März 2024 - 19:50
» Neues YAMAHA XT660-Forum
von gnadenlos Fr 1 März 2024 - 7:33
» Forum nur noch für Eingeloggte sichtbar?
von Skouliki Di 27 Feb 2024 - 7:53
» [phpBB3] Eine Frage zum Forum selbst.
von Skouliki Di 27 Feb 2024 - 7:52
» Beiträge verschwinden
von Skouliki Do 22 Feb 2024 - 7:47
» [Tutorial - alle Versionen] (De)aktiviert die Anzeige von Signaturen aus Eurem Profil
von Eto Do 15 Feb 2024 - 22:17
Beiträge mit den meisten Reaktionen des Monats
» Beitrag von maddo in [AwsomeBB] LogIn Farbe Weiß auf weiß ( 1 )
[Tutorial] [Alle Versionen] Responsive Tabellen mit mehreren Spalten in Beiträgen
Seite 1 von 1 • Teilen
[Tutorial] [Alle Versionen] Responsive Tabellen mit mehreren Spalten in Beiträgen
Bitte nur für Forumieren-Foren verwenden und nicht als eigenen Code deklarieren
Warum ich dieses Tutorial erstelle:
Zum einen wollte ich auch einfach mal etwas zurückgeben. Ich habe hier im Support schon einige Stunden verbracht und nach Lösungen für diverse Probleme gesucht.
Jetzt gebe ich auch mal etwas zurück
Zum anderen: In meinem Forum nutzen fast 80% aller User die mobile Version, und ich denke, dass ich da nicht die einzige Forumsbesitzerin bin bzw. es mit der Zeit auch immer mehr werden.
Da ich aber gerne mit Tabellen arbeite, hat sich bei mir ein Problem entwickelt: Wenn ich eine Tabelle mit mehreren Spalten erstelle, sieht es zwar auf der klassischen Version auf dem Desktop noch gut aus. Doch in der mobilen Version werden die Spalten so stark gequetscht und unnatürlich in die Länge gezogen, dass man den Inhalt nicht mehr wirklich lesen kann.
Eine Tabelle mit 8 Spalten, die ich kürzlich für ein RPG erstellt hatte, war also für meine smartphone-affinen User quasi unbrauchbar.
Daher möchte ich euch zwei Möglichkeiten -eine einfache und eine etwas kniffligere- aufzeigen, wie ihr dieses Problem lösen könnt.
Voraussetzungen für beide Varianten:
- "HTML immer akzeptieren" muss in den Profileinstellungen auf Ja stehen
- Administrations-Bereich Allgemeines Nachrichten und Emails Einstellungen Beiträge
- HTML erlauben: Ja
- Ungeschütztes HTML zulassen: mind. für Administratoren und/oder Moderatoren zulassen
- Variante A - scrollbare Tabellen - Schwierigkeit: einfach:
- Hierzu braucht ihr quasi keine HTML-Kenntnisse, sondern könnt eure Tabelle (hier als Beispiel mit 4 Spalten und 3 Zeilen) einfach in folgenden Code packen:
- Code:
<div style="overflow-x:auto"> [table][tr][td].....[/td][/tr][/table]</div>
Zusätzlich dazu müsst ihr im CSS folgenden Eintrag vornehmen:- Code:
@media only screen and (max-width:500px){
.post-content table, .postbody table{
width:100% !important;
word-break:normal;
}}
Zur Erklärung:- overflow-x:auto --> wir geben an, dass sobald die Tabelle größer wird, als der ihr zur Verfügung stehende Platz, soll sie scrollbar sein
- @media only screen and (max-width:500px) --> hier legen wir fest, ab welcher Bildschirmbreite die Tabelle scrollbar werden soll. Die 500px ist hierbei nur ein Beispiel
- .post-content table/.postbody table --> alle Tabellen, die in einem Beitrag erstellt werden (sowohl klassische als auch mobile Version)
- width:100% !important --> zwingt die Tabelle, in ihrer vollen Breite zu bleiben
- word-break:normal --> Wörter werden nicht mittendrin geteilt, sondern nur an sinnvollen Punkten. Dadurch zwingen wir die Tabellen-Zellen auch eine gewisse Breite zu haben und sich nicht beliebig zu quetschen
- Variante B - Spalten sortieren sich untereinander - Schwierigkeit: fortgeschritten:
- Variante A ist zwar einfach umzusetzen, sieht aber optisch eher semi aus. Daher nun eine Möglichkeit wie sich die Tabellenspalten in der mobilen Version automatisch untereinander anordnen, in der klassischen aber nebeneinander bestehen bleiben.
Zuerst einmal müssen wir uns von den bekannten Tabellen-Codes verabschieden und erstellen stattdessen mit div-containern den Anschein einer Tabelle.
Der Code beinhaltet wieder eine Tabelle mit 4 Spalten und 3 Zeilen als Beispiel, und muss in den entsprechenden Beitrag eingefügt werden.- Code:
<div class="divtabelle" style="border:1px solid black; width:25%"><div class="divtd" align="center">Inhalt Reihe 1 Spalte 1</div><div class="divtd" align="center" style="border-top:1px solid black; border-bottom:1px solid black">Inhalt Reihe 2 Spalte 1</div><div class="divtd" align="center" >Inhalt Reihe 3 Spalte 1</div></div><div class="divtabelle" style="border:1px solid black; width:25%"><div class="divtd" align="center">Inhalt Reihe 1 Spalte 2</div><div class="divtd" align="center" style="border-top:1px solid black; border-bottom:1px solid black">Inhalt Reihe 2 Spalte 2</div><div class="divtd" align="center">Inhalt Reihe 3 Spalte 2</div></div><div class="divtabelle" style="border:1px solid black; width:25%"><div class="divtd" align="center">Inhalt Reihe 1 Spalte 1</div><div class="divtd" align="center" style="border-top:1px solid black; border-bottom:1px solid black">Inhalt Reihe 2 Spalte 3</div><div class="divtd" align="center">Inhalt Reihe 3 Spalte 3</div></div><div class="divtabelle" style="border:1px solid black; width:25%"><div class="divtd" align="center">Inhalt Reihe 1 Spalte 4</div><div class="divtd" align="center" style="border-top:1px solid black; border-bottom:1px solid black">Inhalt Reihe 2 Spalte 4</div><div class="divtd" align="center">Inhalt Reihe 3 Spalte 4</div></div>
Zusätzlich dazu müsst ihr im CSS folgenden Eintrag vornehmen:- Code:
.divtabelle{
display:inline-block;}
@media only screen and (max-width: 500px) {
.divtabelle {
display: block;
width:100% !important;}
}
Zur Erklärung:- width:25% --> die Breite der "Div-Tabelle" richtig sich immer danach, wie viele "Spalten" es geben soll. In unserem Beispiel haben wir 4 Spalten, also liegt die Breite einer "Div-Tabelle" bei 25%. Möchte ich 5 Spalten haben, verringert sich die Breite auf 20%. Möchte ich hingegen nur 2 Spalten haben, muss ich 50% als Breite auswählen usw.
- .divtabelle{display:inline-block --> so zwingen wir die einzelnen Div-Tabellen sich generell nebeneinander anzuordnen. Die class "divtabelle" und "divtd" kann natürlich nach Belieben geändert werden. Denkt aber daran sie sowohl in eurem Beitrag als auch im CSS entsprechend zu ändern, sonst funktioniert es nicht!
- @media only screen and (max-width:500px) --> wie oben auch schon erwähnt, legen wir hier fest, ab welcher Bildschirmbreite sich die Tabellen anders anordnen sollen
- display:block --> so zwingen wir die Tabellen sich untereinander anzuordnen bis 500px Bildschirmbreite
- width:100% !important --> so legen wir fest, dass jede Tabelle den ihr zur Verfügung stehenden Platz in der Breite voll ausfüllen soll
Ich habe beide Varianten mal in meinem Testforum eingestellt.
Hier könnt ihr bequem ausprobieren, wie das ganze mit großem und kleinem Bildschirm aussieht. ->klick
Die Tabellen können natürlich auch noch farblich etc. mit den entsprechenden CSS- oder HTML-Einträgen ausgeschmückt werden.
1 Tipp noch: wenn eure Div-Tabellen unterschiedlich lange Inhalte haben, kann es passieren, dass die einzelnen Tabellen auch unterschiedlich hoch angezeigt werden. Das könnt ihr umgehen, indem ihr entweder all euren Div-Tabellen eine feste Größe gebt, z.B. 200px- Code:
<div class="divtabelle" style="....;height:200px">....
oder indem ihr nur den Zellen mit großem Inhalt eine feste Größe zuweist und sie dann vertikal scrollbar macht- Code:
<div class="divtd" align="center" style="height:200px;overflow-y:auto">...
Gerne dürft ihr die Tutorials bei euch verwenden. Sollte es Probleme geben oder jemand einen Fehler in meinem Tutorial finden, gerne melden
Kyra- Geselle
- Beiträge : 72
Anmeldedatum : 03.08.16
Stephan68, pedxz und RafaelS. mögen diesen Beitrag
Ähnliche Themen
» [Tutorial - alle Versionen] Die Navigation fixieren
» [Tutorial - alle Versionen] Themenautoren auf der Moderationsseite
» [Tutorial - alle Versionen] Index-Module einzeln ein- und ausklappen
» [Tutorial - alle Versionen] Schritte zum Migrieren deines Forums zu HTTPS
» [Tutorial - alle Versionen] (De)aktiviert die Anzeige von Signaturen aus Eurem Profil
» [Tutorial - alle Versionen] Themenautoren auf der Moderationsseite
» [Tutorial - alle Versionen] Index-Module einzeln ein- und ausklappen
» [Tutorial - alle Versionen] Schritte zum Migrieren deines Forums zu HTTPS
» [Tutorial - alle Versionen] (De)aktiviert die Anzeige von Signaturen aus Eurem Profil
Seite 1 von 1
Befugnisse in diesem Forum
Sie können in diesem Forum nicht antworten