Próbuję zbudować układ w HTML5 i po przeczytaniu kilku różnych artykułów jestem po prostu zdezorientowany. Próbuję uzyskać informacje na temat tego, jak powinno być używane.
Poniżej znajdują się odmiany, z którymi się poruszam:
1)
<section id="content">
<h1>Heading</h1>
<div id="primary">
Some text goes here...
</div>
</section>
Czy możesz użyć tagu sekcji, aby zachowywać się jak kontener?
2)
<div id="content">
<h1>Heading</h1>
<section id="primary">
<article>
<h2>Post Title</h2>
<p>Some text goes here...</p>
</article>
</section>
<section id="primary">
<article>
<h2>Post Title</h2>
<p>Some text goes here...</p>
</article>
</section>
</div>
Jaka jest poprawna metoda używania <section>
tagu?
<section>
jest to znacznik semantyczny, a nie ogólne opakowanie<div>
.Odpowiedzi:
Odpowiedź znajduje się w aktualnej specyfikacji:
Odniesienie:
Zobacz także:
Wygląda na to, że było dużo zamieszania o celu tego pierwiastka, ale jedna rzecz, która jest uzgodniona jest to, że nie rodzajowe otoki, jak
<div>
jest. Powinien być używany do celów semantycznych, a nie jako haczyk CSS lub JavaScript (chociaż z pewnością można go określić stylem lub „za pomocą skryptu ”).Lepszy przykład, z mojego zrozumienia, może wyglądać mniej więcej tak:
Zwróć uwagę, że
<div>
będąc całkowicie niesemantycznym, można go używać w dowolnym miejscu dokumentu, na który zezwala specyfikacja HTML, ale nie jest to konieczne.źródło
Na stronie wiki W3 o tworzeniu struktury HTML5 jest napisane:
A następnie wyświetla obraz, który wyczyściłem:
Ważne jest również, aby wiedzieć, jak używać
<article>
tagu (z tego samego linku W3 powyżej):źródło
<main>
zamiast tego użyłbyś tagu jeden na dokument<section id="main"
?<main>
byłoby idealne.Rozumiem, że SECTION zawiera sekcję z nagłówkiem, który jest ważną częścią „przepływu” strony (a nie bokiem). Sekcje to rozdziały, numerowane części dokumentów i tak dalej.
ARTYKUŁ jest przeznaczony dla treści dystrybuowanych - np. Postów, wiadomości itp. ARTYKUŁ i SEKCJA są całkowicie oddzielne - możesz mieć jeden bez drugiego, ponieważ są to bardzo różne przypadki użycia.
Inną rzeczą dotyczącą SECTION jest to, że nie powinieneś go używać, jeśli twoja strona ma tylko jedną sekcję. Ponadto każda sekcja musi mieć nagłówek (H1-6, HGROUP, HEADING). Nagłówki są „ograniczone” w obrębie SEKCJI, więc np. Jeśli używasz H1 na stronie głównej (poza SEKCJĄ), a następnie H1 wewnątrz sekcji, ta ostatnia będzie traktowana jako H2.
Przykłady w specyfikacji są całkiem dobre w momencie pisania.
Tak więc Twój pierwszy przykład byłby poprawny, gdybyś miał kilka sekcji treści, których nie można opisać jako ARTYKUŁÓW. (Z drobną uwagą, że nie potrzebujesz #primary DIV, chyba że chcesz go jako haka stylu - znaczniki P byłyby lepsze).
Drugi przykład byłby poprawny, gdybyś usunął wszystkie tagi SECTION - dane w tym dokumencie byłyby artykułami, postami lub czymś podobnym.
SEKCJI nie powinny być używane jako pojemniki - DIV jest nadal właściwym zastosowaniem do tego i każdego innego niestandardowego pudełka, które możesz wymyślić.
źródło
Zdecydowanie możesz użyć tagu sekcji jako kontenera. Służy do grupowania treści w bardziej znaczący semantycznie sposób niż w przypadku elementu div lub zgodnie ze specyfikacją html5:
źródło
Prawidłowa metoda to nr 2. Użyłeś znacznika sekcji, aby zdefiniować sekcję dokumentu. Ze specyfikacji http://www.w3.org/TR/html5/sections.html :
źródło
<article>
), ale nie da się tego naprawdę stwierdzić na podstawie tylko przykładowego tekstu i dwóch sekcji zid
„podstawowym”…to po prostu nie tak: nie jest opakowaniem. Element oznacza semantyczną sekcję treści, aby pomóc w tworzeniu konspektu dokumentu. Powinien zawierać nagłówek. Jeśli szukasz elementu opakowującego stronę (dla dowolnego stylu HTML lub XHTML), rozważ zastosowanie stylów bezpośrednio do elementu, zgodnie z opisem Kroc Camen. Jeśli nadal potrzebujesz dodatkowego elementu do stylizacji, użyj pliku. Jak wyjaśnia dr Mike, div nie jest martwy, a jeśli nie ma nic bardziej odpowiedniego, prawdopodobnie jest to miejsce, w którym naprawdę chcesz zastosować swój CSS.
możesz to sprawdzić: http://html5doctor.com/avoiding-common-html5-mistakes/
źródło