Właśnie czytałem czyjś HTML, który nigdy nie zamykał tagów meta i linków w sekcji nagłówka HTML. Kod działał dobrze; czy zamknięcie tych tagów jest opcjonalne?
Pomyślałem, że byłoby źle sformułowane, gdyby tag nie był zamknięty.
Odpowiedzi:
Tag muszą być zawsze zamknięte przez tag ścisłej symbolu >(jeśli pominiemy pewne zasady SGML że nominalnie zastosowanie w braku XHTML HTML, ale nigdy nie były realizowane w przeglądarkach).
Chcesz zapytać, czy elementy muszą być zamykane znacznikami końcowymi. Odpowiedź jest taka, że kod HTML inny niż XHTML (w tym HTML5 w serializacji HTML), żaden znacznik końcowy nie jest wymagany ani dozwolony dla elementów metai link. W praktyce jednak przeglądarki po prostu ignorują ich wyraźne znaczniki końcowe, a także /wcześniejszy kult cargo >, jeśli ich używasz. A HTML5 czyni tę permisywność regułą, nawet formalnie zezwalając na /serializację w HTML.
W XHTML obowiązują reguły XML, więc każdy element bez wyjątku musi mieć zarówno znacznik początkowy, jak i końcowy, ale ten sam znacznik może być używany dla obu ról, jeśli zawartość elementu jest pusta, np. <meta name="foo" content="bar"/>Jako skrót od <meta name="foo" content="bar"></meta>. Jeśli naruszysz ten przepis, udostępniając dokument z typem zawartości XML (XHTML) do zgodnej przeglądarki, wówczas dokument w ogóle nie zostanie wyświetlony; zamiast tego wyświetlany jest komunikat o błędzie.
Podczas korzystania z serwera XHTML z typem zawartości HTML ( Content-Type: text/html), ponieważ dokumenty XHTML prawie zawsze znajdują się w Internecie, przeglądarki będą faktycznie stosować reguły HTML inne niż XHTML.
Podsumowując:
<meta ...>bez/<meta ... />, zrób to; nie jest użyteczne, ale nie powoduje żadnych szkód (chyba że spróbujesz zweryfikować np. w oparciu o doctype HTML 4.01)./przed >”). Pomyślałem, że wyjaśnię, aby uniknąć bałaganu w Internecie z większym zamieszaniem. </pedant_alert>:)
To zależy od typu dokumentu. HTML5 nie potrzebuje zamknięcia. XHTML tak.
W HTML5 tak zwane elementy void (elementy, które nie mogą mieć treści) nie wymagają zamykania, ponieważ są samozamykające. Ale nadal obowiązuje, jeśli je zamkniesz.
Przeczytaj więcej na ten temat tutaj: void-elements