Etwas unkonventionell, das Ganze aber hat was
Zitat
Ja ich weiß, Tabellen sollten am Besten komplett vermieden werden, aber manchmal geht dies leider nicht.
Das ist ein Missverständnis, das man häufig antrifft. Es trifft zu, dass man vermeiden sollte, Tabellen für Layoutzwecke zu missbrauchen. Handelt es sich dagegen um die Darstellung von Daten, die von ihrer Struktur her tabellarisch sind, ist nichts dagegen einzuwenden.
Man sollte jedoch etwas anderes vermeiden: Float, sofern es nicht tatsächlich um das Umfließen eines Elementes geht. Dafür, die Anordnung von Elementen zu steuern, sind Flex- und Gridlayout entwickelt worden. Ich habe das CSS in deiner Mediaquery mal auf Flex umgestellt und siehe da, es wird so dargestellt, wie gewünscht.
@media screen and (max-width:700px) {
table,
tr,
td {
padding: 0;
border: 1px solid black;
}
table {
border: none;
}
thead {
display: none;
}
tr {
display: flex;
flex-direction: column; /* Tabellenzellen jetzt untereinander darstellen */
width: 100%;
margin-bottom: 2em;
}
td {
/* float: left; */
display: flex; /* Elemente, :before und Zelleninhalt, nebeneinander darstellen */
/* width: 100%; */ /* Die Breite wird jetzt durch das flex für tr festgelegt */
padding: 1em;
}
td::before {
content: attr(data-label);
word-wrap: break-word;
background: #eee;
border-right: 2px solid black;
width: 20%;
/* float: left; */
padding: 1em;
font-weight: bold;
margin: -1em 1em -1em -1em;
}
.spalte {
/* float: left; */
width: 60%;
}
}
Alles anzeigen