Tabelle nicht responsive

  • Das Plugin responsive tables hab ich installiert und implemtiert.

    Allerdings erhalte ich hier eine Scrollbar, das ist nicht mein Wunsch.

    Da die Inhalte der Tabelle nicht Zeilen-/Spaltenabhängig sind, möchte ich dass alles was horizontal nicht Platz hat automatisch in vertikal nachrutscht,

    Geht das auch mit dem Plugin oder ist hier nur eine Scrollbar möglich?

  • Setze über css table tr und table td auf display: block; width: 100% und display: none für table tr > td:nth-of-type(n). n steht hier für die Spalte(n), die ausgeblendet werden soll(en).


    Da sicher nicht alle Tabellen auf die gleiche Art behandelt werden sollen ist zur eindeutigen Identifizierung zusätzlich die Zuordnung einer Klasse sinnvoll wie z.B. table.tablemyclass


    Auf diese Weise können sehr einfach unterschiedliche Tabellentypen für Smartphone angepasst werden. Zwei Beispiele findest Du unter https://www.ig-lilienthal.de/index.php/termine-menu und unter https://www.ig-lilienthal.de/i…-menu/mitgliedschaft-menu am Ende. Einfach mal das Fenster ganz schmal machen.


    Aufwendig kann dabei lediglich die Formatierung der umsortierten Tabelle werden. Aber das muss eh' immer getan werden.


    Noch eine Ergänzung dazu: für alle tr und alle td muss gesetzt werden height: auto;. Ab einer der letzten Joomla-Updates wird bei Tabellen height automatisch auf einen konkreten Wert gesetzt (warum?). Dass ist dann bei responsive gestalteten Tabellen kontraproduktiv.

    Gruß

    Heinz


    "Wer es nicht versucht schafft es auch nicht."

    Einmal editiert, zuletzt von Indigo66 () aus folgendem Grund: Ein Beitrag von hrybak mit diesem Beitrag zusammengefügt.

  • Danke für eure Antworten.

    Leider sind meine Webdesign Erfahrungen noch sehr gering, womit ich mich deshalb teilweise sehr schwer tue mit den Antworten.


    Das Plugin responsive tables habe ich hinbekommen, liefert allerdings nicht den gewünschten Erfolg (Scrollbar).

    Mit CSS Grid habe ich mich etwas beschäftigt, wäre genau das was ich mir vorstelle.
    Hab mir mal auf die schnelle mit CSS Grid Generator eine Tabelle erstellt.


    CSS

    .parent {

    display: grid;

    grid-template-columns: repeat(5, 1fr);

    grid-template-rows: repeat(7, 1fr);

    grid-column-gap: 0px;

    grid-row-gap: 0px;

    }


    HTML

    <div class="parent">

    </div>


    Muss ich hier den CSS Code in meine user.css schreiben und den HTML Code in meinen Beitrag?


    lg Mario

  • Danke für eure Hilfe, habe es jetzt hinbekommen mit CSS Grid.


    2 kleine Fragen hätte ich noch:

    - Wie kann ich zweizeilig schreiben (aktuell habe ich es von der Breite begrenzt damit es zweizeilig wird, ist aber keine schöne Lösung)?

    - Wie kann ich den Text vertikal mittig ausrichten (wenn zB nur 1 Zeile benötigt wird)?


    lg Mario

  • Wenn die Namen immer zweizeilig sein sollen (also 1. Zeile Vorname, 2. Zeile Nachname), mach einfach einen Zeilenumbruch (<br />)


    Code
    .grid-container {
      justify-items: center; //damit sparst du das text-align: center in jeder Zeile
      justify-content: space-around;
      font-family: 'comic sans ms', sans-serif; // muss du nicht in jeder Zeile angeben
      font-size: 18px;
      font-weight: bold;
    }

    Man soll Inline Style so gut wie es geht vermeiden. Über Comic Sans kann man sich streiten, für bestimmte Sachen ist vielleicht eine nette Schrift.. ich würde mir was anderes suchen...


    Damit wird der Text vertikal zentriert

    Code
    grid-item1 {
      height: 100px;
      display: flex;
      align-items: center;
    }
  • Danke für den Code.


    Irgendwo ist noch ein Fehler, horizontal wird es nicht zentrisch angezeigt.


    .grid-container {

    display: grid;

    grid-template-columns: repeat(auto-fill, 250px);

    grid-gap: 25px;


    justify-items: center;

    justify-content: center;

    font-family: sans-serif;

    font-size: 18px;

    font-weight: bold;

    }


    .grid-item1 {

    height: 50px;

    display: flex;

    align-items: center;

    }

  • Versuche es mal mit .grid-item1 {text-align: center; . . . .}.


    Ich habe die Vorgehensweise über Grid selbst ausporbiert und bin anfangs auf das gleiche Problem gestossen.


    Im Übrigen denke ich, dass diese Methode für deine Aufgabenstellung die beste ist und deutlich einfacher als über Tabellen. (Anders sieht es nach meiner Erfahrung aus, wenn es sich um strukturierte Tabellen handelt, bei denen Spalten und/oder Zeilen z.B. unterschiedliche Inhalte und unterschiedliche Formatierung haben.)

    Gruß

    Heinz


    "Wer es nicht versucht schafft es auch nicht."

  • Danke das war die Lösung!

    Versuche es mal mit .grid-item1 {text-align: center; . . . .}.


    Ich habe die Vorgehensweise über Grid selbst ausporbiert und bin anfangs auf das gleiche Problem gestossen.


    Im Übrigen denke ich, dass diese Methode für deine Aufgabenstellung die beste ist und deutlich einfacher als über Tabellen. (Anders sieht es nach meiner Erfahrung aus, wenn es sich um strukturierte Tabellen handelt, bei denen Spalten und/oder Zeilen z.B. unterschiedliche Inhalte und unterschiedliche Formatierung haben.)

    Danke, das war die Lösung!


    lg Mario