2017-01-23 3 views
0

Ich entwerfe eine Website und auf dem Desktop habe ich eine 2-Spalten-Tabelle, aber auf Mobilgeräten sieht der Tisch nicht so gut aus. Ist es möglich, die Anzahl der Tabellenspalten basierend auf der Bildschirmbreite zu bestimmen?Anzahl der Tabellenspalten basierend auf der Breite der Anzeige

Desktop:

 
Cell 1  Cell 2 
Cell 3  Cell 4 

Mobil:

 
Cell 1 
Cell 2 
Cell 3 
Cell 4 
+0

poste ich dies als eine Antwort nicht, weil es nicht die einfachste Lösung für Ihre Tabelle nur eingestellt ist, aber wenn Sie mehr Dinge, die von der Desktop-Version eine gute Alternative anders sein sollten, ist Verwenden Sie eine Weiterleitung zu einer mobilen Version Ihrer Seite, wenn ein mobiler Benutzeragent erkannt wird. Happy Coding ;-) – fameman

Antwort

2

Es kann durch die Anwendung display:flex auf Ihre tr und Einstellen der td Größe in einem media query

table{width:100%;} 
 
tr { 
 
    display: flex; 
 
    flex-wrap: wrap; 
 
    width:100%; 
 
} 
 
td { 
 
    width: 50%; 
 
    border:1px solid blue; 
 
    box-sizing:border-box; 
 
} 
 
@media screen and (max-width:400px) { 
 
    td{width:100%;} 
 
}
<table> 
 
    <tr> 
 
    <td>col 1</td> 
 
    <td>col 2</td> 
 
    </tr> 
 
    <tr> 
 
    <td>col 3</td> 
 
    <td>col 4</td> 
 
    </tr> 
 
</table>
erfolgen

Sie können eine Funktionsbeispiel finden here

+0

debattiert habe ich den Code aus dem Codepen innerhalb der Antwort und habe mich letztendlich dagegen entschieden, da ich das Gefühl hatte, dass da das Viewport im Stack Overflow-Snippet nicht einstellbar ist, würde es bei einer Demonstration keinen großen Nutzen bringen Standpunkt. Abgesehen davon ist Ihr Standpunkt, dass der externe Link nicht funktioniert, fair und ich habe ihn aktualisiert. – Brice

+0

Die Antwort scheint jetzt vollständiger. Ich werde meinen ursprünglichen Kommentar entfernen und Ihrer Antwort eine positive Bewertung geben. – Santi

0

ich eine ähnliche Frage hier beantwortet haben: Forcing table cell onto new row

Ganz einfach, was Sie versuchen, hier zu tun ist, um eine Tabelle zu machen nicht behave als Tabelle, was eine interessante Umsetzung ist. Das heißt, Sie könnten so etwas tun: https://jsfiddle.net/jz6mypvw/1/

Mit @media Abfragen können Sie zwingen, Ihre Tabelle in Zeilen aufzuteilen, wie das Fenster kleiner wird. Das folgende Beispiel ist 2x2, wenn die Bildschirmbreite < 800px ist, und schließlich eine einzelne Spalte, wenn die Größe < 500px ist.

@media only screen and (max-width: 800px) { 
    table tr td { 
     display: block; 
     width: 50%; 
     box-sizing: border-box; 
     float: left; 
    } 
} 

@media only screen and (max-width: 500px) { 
    table tr td { 
     width: 100%; 
    } 
} 
<table> 
    <tr> 
     <td class="col-1">One</td> 
     <td class="col-2">Two</td> 
     <td class="col-3">Three</td> 
     <td class="col-4">Four</td> 
    </tr> 
</table> 
Verwandte Themen