Wie semantisch stellen Sie eine Beschriftung, Titel oder label, um eine Liste in HTML
Was ist der richtige Weg, um eine semantische Beschriftung für eine HTML-Liste? Zum Beispiel, die folgende Liste ist ein "Titel"/"Beschriftung".
Obst
- Apple
- Birne
- Orange
Wie sollte das Wort "Frucht" verarbeitet werden, in einer solchen Weise, dass es ist semantisch assoziiert mit der Liste selbst?
- Die HTML-Spezifikationen müssen, fügen Sie Titel, Legende und Hinweis-Attribute oder tags zu den Elementen. Bilder, Tabellen, Listen und andere nicht-text-Objekte haben einen Titel, Legende und/oder der Hinweis angebracht, um Sie in Publikationen und nützliche markup language Bedürfnisse zu reflektieren, die Konvention.
- Ich bin überrascht, diese Frage wurde bereits geschlossen, es ist deutlich über Semantik, nicht die ästhetik, oder andere subjektive Thema. Die Frage ist direkt mit der Frage "gibt es eine entsprechende semantisches markup für diese situation?" und, soweit HTML5 betrifft, ist die Antwort "ja".
- Ich bin müde zu sehen, so viele Fragen, die mein Interesse als geschlossen und als "opinion-based". Es ist ein contraproductive. Lasst uns äußern unsere Meinungen. Auch diese Frage wird über "best practice". Menschen können über gültige Argumente in Bezug auf best practices (mit Quellen). Wir wollen diese Argumente. Es ist nicht alles über "Meinungen"
- Ich habe gewählt, um re-öffnen Sie diese Frage bearbeitet und es Klang weniger Meinung-y. Jetzt ist es klar fragt für eine korrekte semantische Weg, um einen Titel hinzuzufügen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zwar gibt es keine Bildunterschrift oder überschrift-element der Strukturierung Ihrer markup effektiv kann die gleiche Wirkung haben. Hier sind einige Vorschläge:
Verschachtelte Liste
Überschrift Vor der Liste
Definition Liste
<p>There are several types of fruit that are useful in this case: <ul><li>Apple</li><li>Pear</li><li>Orange</li></ul></p>
<ul>
(oder einem anderen block-level-element) als Kind einer<p>
ist ungültig nach HTML-Spezifikationen, die besagt, dass<p>
nur "phrasing content" als Kind-Knoten.Option 1
HTML5 hat das
figure
undfigcaption
- Elemente, das finde ich ganz schön.Beispiel:
Diese sind leicht gestylt mit CSS.
Option 2
Mit CSS3 s ::before pseudo-element kann eine schöne Lösung:
HTML:
CSS:
Können Sie, natürlich, verwenden Sie einen anderen Selektor als
ul[title]
; zum Beispiel könnten Sie fügen Sie eine "Titel-als-Kopf" - Klasseul.title-as-header::before
statt, oder was auch immer Sie brauchen.Dies hat den Nebeneffekt, geben Sie eine QuickInfo für die ganze Liste. Wenn Sie nicht möchten, dass so ein tooltip wird, können Sie ein data-Attribut verwenden (z.B.
<ul data-title="fruit">
undul[data-title]::before { content: attr(data-title); }
).Soweit ich weiß, gibt es keine Bestimmungen in der aktuellen HTML-Spezifikationen für die Bereitstellung einer Beschriftung für eine Liste, da es mit Tabellen. Ich würde bleiben, mit der Verwendung von entweder ein klassifiziert Absatz, oder ein header-tag für heute.
In der Zukunft, wenn HTML5 Gewinne breiteren Annahme, Sie werden in der Lage sein zu verwenden, die
<legend>
und<figure>
tags um dies zu erreichen etwas mehr semantisch.Sehen dieser Beitrag auf der W3C-mailing-Liste für weitere Informationen.
Es gibt keine caption-wie tag für eine Liste wie eine Tabelle hat. Also würde ich nur geben es ein
<Hx>
(x abhängig von Ihrem bisher verwendeten Header).Können Sie immer
<label/>
zu verknüpfen label zu Ihrer Liste element: