HTML-markup für multi-Tag-Kalender-Ereignisse
Ich bin vertraut mit den standard colspan-basierten Ansatz für die Anzeige (multiweek-oder Monatsansicht) - Kalender in HTML mit Veranstaltungen, die sich über mehrere Tage. (Google Kalender tut dies, als eines von vielen Beispielen.)
Ich bin gespannt, ob jemand weiß, Tisch-weniger Ansatz, das gleiche zu erreichen. Vielleicht ist es einfach nicht wichtig, und dies ist ein "gut", verwenden Sie die Tabelle element, aber ich denke, es könnte mehr relevant, im Zeitalter von responsive design.
Hier ist ein Beispiel für eine ansprechende, Tisch-kleiner Kalender. (Keine multi-day events, though.) https://pittsburghkids.org/calendar In seiner kleinen-viewport-version, es ist nicht mehr eine Tabelle, semantisch. Ähnlich, wie @ThinkingStiff erwähnt unten, wenn Sie die Umstellung von "Monats-Ansicht" auf "Ansicht" auf der client-Seite, ein Tisch passt nicht wirklich semantisch entweder.
- Ich bin mir bewusst, dass die vorherrschende Meinung (stackoverflow.com/questions/42169/...) wurde für die Tabellen, aber ich bin mir auch bewusst, dass viele lang gehegte Annahmen werden umgeworfen, die durch die Prävalenz von kleinen viewports.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Kalender != Tabellen
Kalender sind nicht semantisch Tabellen. Sie fühlen sich wie Tabellen, weil das ist, wie wir immer sehen, aber die Daten werden semantisch einer Tabelle, jede Zeile enthalten eine einzigartige Einrichtung, und Sie nicht. Im Kalender der Tag wird die Entität.
Die Verwirrung liegt in der Tatsache, dass wir auch die Gruppe Tage in Wochen. Menschen natürlich denke, ein Monat ist eine Sammlung von Wochen, aber es ist nicht, es ist eine Sammlung von Tagen. Ein Monat hat im Durchschnitt 4,3 Wochen. Eine Zeile in einer Tabelle nicht enthalten Teil einer Person oder mehrere Personen.
Zeile == Entität, Spalte == Eigenschaft
Vergleichen Sie es um, sagen wir, einen Warenkorb online. Die Artikel in Ihrem Warenkorb werden tabellarisch. Jeder Zeile stellt eine Art von Element in Ihren Warenkorb gelegt. Jeder Spalte ist entweder ein Eigenschaft des Elements (name, stock Anzahl, Preis) oder eine Summe (Anzahl, Gesamtbetrag) einer Immobilie. Sie sehen nie zwei verschiedene Element-Typen in einer einzigen Zeile (da würde es keinen Sinn machen) und ein Wagen kann nicht enthalten, 4.3 Zeilen.
Eine Lösung
Für diese demo, die ich verwendet
<divs>
man für jeden Tag einstellen, umdisplay: inline-block
, aber Sie werden wahrscheinlich möchten ein<ol>
. Tage fließen auch beim Wechsel zwischen Monat/Woche/Tag-Ansichten (nicht möglich mit Tabellen). Für mehrtägige Veranstaltungen, Javascript kann das layout.Demo: http://jsfiddle.net/ThinkingStiff/XXm8y/
Ausgabe:
Skript:
CSS:
HTML: