Apakah kita masih membutuhkan garis miring akhir di HTML5?

122

Di HTML5, apakah kita masih membutuhkan garis miring seperti di XHTML?

<img src="some_image.png" />

validator.w3.org tidak mengeluh jika saya menjatuhkannya, bahkan tidak ada peringatan. Tetapi beberapa dokumen online tampaknya menunjukkan bahwa garis miring akhir masih diperlukan untuk tag seperti img, link, meta, br, dll.

CaptSaltyJack
sumber
6
Masih ? Apakah versi HTML mana pun mengharuskan penutupan semua tag?
Gabe
9
@Gabe XHTML 1.0 Strict membutuhkannya. Maksud saya, halaman web biasanya akan dimuat dengan baik, tetapi dianggap tidak valid.
CaptSaltyJack
3
Ya, tetapi X itu tidak hanya ada di sana karena X itu keren, ada cukup jarak antara HTML dan XHTML.
1
@Capt: Anda benar, tetapi itu hanya akan menjadi masalah jika doctype Anda menunjukkan XHTML.
Gabe

Jawaban:

80

img Tag adalah Elemen Kosong sehingga tidak membutuhkan tag akhir.

Area elemen kosong, base, br, col, command, embed, hr, img, input, keygen, link, meta, param, source, track, wbr

...

Elemen kosong hanya memiliki tag awal; tag akhir tidak boleh ditentukan untuk elemen kosong.

W3C | WHATWG

Karena itu, penguraiannya tidak ketat dalam HTML5 sehingga tidak akan menimbulkan bahaya besar.

Brian R. Bondy
sumber
Hanya penasaran, karena editor saya (Komodo) indentasi jika saya mengetik '<img src = "x">' dan tekan enter. Ia mengharapkan garis miring dalam mode HTML5 dan saya ingin memastikan ini adalah perilaku yang benar.
CaptSaltyJack
5
Ini HTML, bukan XHTML, jadi tidak diperlukan. Untungnya, parser masih memahami garis miring akhir gaya XHTML dengan baik, jadi tidak ada salahnya membiarkannya di sana. Berarti lebih mudah mengkonversi mundur ke XHTML, jika perlu karena alasan apapun.
Nightfirecat
4
@FreeRadical: Garis miring adalah opsional untuk elemen kosong, tetapi tag akhir tidak valid.
Ry-
26
Sementara pertanyaannya adalah tentang garis miring akhir (misalnya <br/), jawaban ini hanya mengacu pada tag akhir (misalnya <br></br>).
Radikal Bebas
12
@FreeRadical benar. Jawaban ini secara teknis tidak benar, karena membingungkan an ending slashdengan an end tag, dan dengan demikian salah memahami paragraf spesifikasi yang mengutip. Hal ini menyebabkan kebingungan @ YannisDran. @minitech menyatakan dengan benar apa yang benar.
ToolmakerSteve
94

Dalam HTML 5, garis miring penutup adalah opsional pada elemen kosong seperti img(Saya menambahkan ini karena jawaban yang diterima saat ini hanya mengatakan: "tag akhir tidak boleh ditentukan untuk elemen kosong", dan tidak membahas garis miring penutup di elemen kosong).

Mengutip dari http://www.w3.org/TR/html5/syntax.html#start-tags (nomor 6):

Kemudian, jika elemen adalah salah satu elemen kosong, atau jika elemen adalah elemen asing, maka mungkin ada satu karakter "/" (U + 002F). Karakter ini tidak berpengaruh pada elemen kosong, tetapi pada elemen asing menandai tag awal sebagai menutup sendiri.

Radikal bebas
sumber
Ini bukan tentang HTML5. Sebenarnya, di Versi HTML sebelumnya <br/>atau <img ... />ada kesalahan.
jj
@jj Saya mengutip dokumen HTML5, jadi saya tidak mengerti mengapa tidak berpikir itu bukan HTML5. Dan memang, di versi lain, garis miring seperti itu adalah kesalahan.
Radikal Bebas
Tentu, saya bermaksud mengatakan "apakah kita masih perlu garis miring akhir di HTML5" adalah pertanyaan yang salah. Mungkin saya akan menulis jawaban lengkap dengan beberapa tautan sejarah suatu hari nanti. IIRC adalah keputusan sulit bagi Ian Hickson (editor HTML) untuk mengizinkan garis miring di HTML5.
jj
2

Nggak. HTML tidak pernah membutuhkannya, bahkan sebelum HTML5. Jika Anda berencana menggunakan XHTML dengan fitur HTML, maka ya, itu perlu.

Ry-
sumber
1
XHTML tidak sama dengan HTML5, benar? Jika DOCTYPE saya hanya "html", saya tidak memerlukan garis miring di belakangnya, bukan?
CaptSaltyJack
@CaptSaltyJack: Benar.
Ry-
1
@CaptSaltyJack - HTML5 mencakup HTML biasa dan XHTML. XHTML membutuhkan semua elemen untuk ditutup, tetapi untuk browser, doctype tidak berpengaruh pada situasi tersebut. Untuk penjelasan yang lebih lengkap, lihat stackoverflow.com/questions/2662508/…
Alohci
2

Menurut Tag Awal, mereka opsional.

Josh Lee
sumber
1

Garis miring akhir untuk elemen kosong adalah opsional.

Keduanya adalah HTML5 yang valid:

<img src="some_image.png" />

dan

<img src="some_image.png">

Elemen Void adalah:

  • area
  • base
  • br
  • col
  • embed
  • hr
  • img 👍
  • input
  • link
  • meta
  • param
  • source
  • track
  • wbr

Selain menarik:

Elemen kosong tidak boleh memiliki konten apa pun (karena tidak ada tag akhir, tidak ada konten yang dapat ditempatkan di antara tag awal dan tag akhir).

Detail lebih lanjut di: https://html.spec.whatwg.org/multipage/syntax.html#elements-2


Lihat juga pertanyaan SO di sini:
Tag yang menutup sendiri (elemen kosong) di HTML5

Kai Noack
sumber