Czy nadal potrzebujemy ukośników końcowych w HTML5?

W HTML5, czy nadal potrzebujemy ukośnika końcowego jak w XHTML?

<img src="some_image.png" />

Validator.w3.org nie narzekałem, jeśli go upuściłem, nawet nie ostrzegałem. Ale niektóre dokumenty online wydają się wskazywać, że ukośnik końcowy jest nadal wymagany dla tagów takich jak img, link, meta, br itp.

 103
Author: CaptSaltyJack, 2011-09-09

6 answers

img znaczniki są pustymi elementami, więc nie potrzebują znacznika końcowego.

Void elements w 2009 roku firma została założona przez Marka WordPressa, a w 2009 roku została założona przez Marka WordPressa.]}

...

Elementy Void mają tylko znacznik początku; znaczniki końca nie mogą być określone dla elementów void.

W3C | WHATWG

Mówi się, że nie jest to ścisłe parsowanie w HTML5, więc nie zrobi to żadnej poważnej szkody.

 74
Author: Brian R. Bondy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-09-09 19:30:41

W HTML 5 ukośnik zamykający jest opcjonalny na elementach void, takich jak img (dodaję to, ponieważ aktualnie akceptowana odpowiedź mówi tylko: "znaczniki końca nie mogą być określone dla elementów void" i nie odnosi się do ukośników zamykających w elementach void).

Cytując z http://www.w3.org/TR/html5/syntax.html#start-tags (Numer 6):

Wtedy, jeśli element jest jednym z elementów pustych, lub jeśli element jest elementem obcym, to może istnieć pojedynczy "/" (U+002f) znak. Znak ten nie ma wpływu na elementy puste, ale na elementy obce oznacza znacznik startowy jako samozamykający się.

 74
Author: Free Radical,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-08-21 04:44:25

Zgodnie z znaczniki Start są opcjonalne.

 2
Author: Josh Lee,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-09-09 19:18:05

Nie. HTML nigdy go nie wymagał, nawet przed HTML5. Jeśli planujesz używać XHTML z funkcjami HTML, to tak, jest to konieczne.

 1
Author: Ry-,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-09-09 19:11:05

FROM W3C:

Void elements: area, base, br, col, embed, hr, img, input, keygen, link, meta, param, source, track, WBR

" Elementy Void mają tylko znacznik start; znaczniki end nie mogą być określone dla elementów void."

Http://www.w3.org/TR/html5/syntax.html#void-elements

 0
Author: Fabio Nolasco,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-28 18:29:53

Wszystkie znaczniki muszą być zamknięte (albo przez samozamykanie, albo przez oddzielną akcję zamykania). Niektóre z nich zamykają się w HTML4 (jak znacznik <img>), podczas gdy inne (jak znacznik <p>) wymagają osobnych znaczników zamykających. Pamiętaj, że wszystkie znaczniki muszą być zamknięte lub przeglądarka (jeśli jest ściśle przestrzegana) będzie miała błędy. Oznacza to, że nawet znaczniki, które nie mają zawartości między otwarciem a zamknięciem, muszą być zamknięte w taki czy inny sposób. Poniżej zbadam tag <img>, ponieważ nie ma żadnej treści między otwarciem a zamknięciem.

W HTML4 jest samozamykający. Nie oznacza to, że się nie zamyka, ponieważ pamiętaj, że wszystkie tagi muszą być zamknięte. Zamyka się tylko swoją obecnością. Więc w HTML4 znacznik <img> jest po prostu: <img>

W XHTML nie jest samoczynnie zamykany. Oznacza to, że musisz podać oddzielny znacznik zamykający, taki jak ten: <img></img>

Potem w HTML5 ktoś w końcu zmądrzał i postanowił uczynić zamknięcie tagiem, który nie ma treści między otwarciem a zamknięciem, bardzo proste zadanie. Użyj tylko jednego znacznika, ale ukośnik przed znakiem greater-than, jak to: <img />

Jest to również w pełni kompatybilne wstecz z HTML4. Jeśli nie używasz XHTML (który wymaga oddzielnego znacznika zamykającego) i nie masz pewności, czy Twój kod używa standardów HTML4 lub HTML5. Najlepiej jest zawsze mieć ukośnik zamknięcia przed znakiem większym niż dla tagów, które nie mają treści między otwarciem a zamknięciem. W ten sposób zawsze będzie wyświetlany poprawnie w każdej przeglądarce.

Oto przykład poprawnie napisanego kodu HTML, który ma wysoki stopień kompatybilności ze wszystkimi przeglądarkami.

<!DOCTYPE html>
<html>
<head>
<title>test website</title>
</head>
<body>
<p>This is a test.</p>
<img src="testpic.jpg" />
</body>
</html>
 -14
Author: user2666353,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-08-09 00:36:44