Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> HTML

HTML5 so với XHTML 1.0 Transitional: Khác biệt và chuyển đổi

HTML5 và XHTML 1.0 Transitional là hai chuẩn markup khác nhau về cú pháp, triết lý và khả năng.

So sánh căn bản

Tiêu chíHTML5XHTML 1.0 Transitional
Cơ sởSGML-inspired (lenient parsing)XML (strict parsing)
Doctype<!DOCTYPE html><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
NamespaceKhông bắt buộcBắt buộc: xmlns="https://www.w3.org/1999/xhtml"
Case sensitivityKhông phân biệt (tag/attr)Phân biệt: chữ thường bắt buộc
Closing tagsTự đóng (<br>, <img>) hoặc không đóngBắt buộc đóng tất cả: <br />, <img />, <p>...</p>
Attribute valuesCó thể không quote: class=exampleBắt buộc quote: class="example"
Boolean attributes<input disabled><input disabled="disabled">
New elements<video>, <audio>, <canvas>, <section>...Không có (invalid markup)
Error handlingBrowser tự sửa lỗi (forgiving)XML parser: lỗi → dừng render (Yellow Screen of Death)

Chuyển đổi HTML → XHTML 1.0 Transitional (Legacy)

  1. Thêm Doctype XHTML ở dòng đầu tiên.
  2. Thêm xmlns="https://www.w3.org/1999/xhtml" vào thẻ <html>.
  3. Chuyển tất cả tên tag, attribute thành chữ thường.
  4. Đóng tất cả element rỗng: <br />, <img />, <input />, <hr />, <meta />, <link />.
  5. Quote tất cả giá trị attribute: class="box", width="100".
  6. Thuộc tính boolean: disabled="disabled", checked="checked", selected="selected".
  7. Thay & trong URL/JS bằng &amp; (XML entity).
  8. Khai báo encoding: <?xml version="1.0" encoding="UTF-8"?> (tùy chọn, khuyến khích).

Ví dụ chuyển đổi

<!-- HTML5 -->
<!DOCTYPE html>
<html lang="vi">
<head>
  <meta charset="UTF-8">
  <title>Trang web</title>
</head>
<body>
  <img src="logo.png" alt="Logo">
  <input type="text" name="email" disabled>
  <br>
  <video controls><source src="vid.mp4"></video>
</body>
</html>

<!-- XHTML 1.0 Transitional -->
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="https://www.w3.org/1999/xhtml" xml:lang="vi" lang="vi">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  <title>Trang web</title>
</head>
<body>
  <img src="logo.png" alt="Logo" />
  <input type="text" name="email" disabled="disabled" />
  <br />
  <!-- video không hợp lệ trong XHTML 1.0 -->
  <object data="vid.mp4" type="video/mp4"></object>
</body>
</html>

Tại sao KHÔNG nên dùng XHTML 1.0 Transitional ngày nay?

  • Đã lỗi thời (>15 năm), không hỗ trợ tính năng web hiện đại.
  • XML parsing nghiêm ngặt gây trải nghiệm kém (trang trắng khi lỗi cú pháp nhỏ).
  • Không có <video>, <audio>, <canvas>, semantic elements.
  • HTML5 là chuẩn sống (Living Standard), được tất cả trình duyệt hỗ trợ.
  • Nếu cần XML: dùng XHTML5 (HTML5 serialized as XML) - hiếm khi dùng.

Migrate sang HTML5 (Khuyên dùng)

<!DOCTYPE html>
<html lang="vi">
<head>
  <meta charset="UTF-8">
  <title>...</title>
</head>
<body>
  <header>...</header>
  <main>...</main>
  <footer>...</footer>
</body>
</html>