So sánh HTML và XHTML

So sánh HTML và XHTML

XHTML là HTML được viết bằng ngôn ngữ XML.

XHTML là gì?

  • XHTML là viết tắt của Extensible HyperText Markup Language (Ngôn ngữ đánh dấu siêu văn bản mở rộng)
  • XHTML gần giống với HTML
  • XHTML có quy định nghiêm khắc hơn HTML
  • XHTML là HTML được định nghĩa như một ứng dụng XML
  • XHTML được hỗ trợ bởi hầu hết các trình duyệt phổ biến

Tại sao lại dùng XHTML?

Nhiều trang trên Internet chứa HTML “rất tệ”, dù không tuân theo quy định của HTML nhưng vẫn chạy được trên nhiều trình duyệt. Dưới đây là ví dụ về đoạn HTML không hợp quy định nhưng vẫn chạy được.

<html>
<head>
 <title>HTML không đúng quy định</title>

<body>
 <h1>HTML “xấu”
 <p>Học JavaScript
</body>Code language: HTML, XML (xml)

Ngày nay có nhiều công nghệ trình duyệt, có thể chạy trên máy tính, điện thoại hoặc các thiết bị nhỏ khác. Các bị thiết bị nhỏ này thường thiếu phần tài nguyên hay sức mạnh để dịch những markup “xấu”.

XHTML là ngôn ngữ đánh dấu mà theo đó tài liệu phải được đánh dấu đúng quy cách, được phát triển bằng cách kết hợp sức mạnh của cả HTML và XML.

Điểm khác biệt quan trọng giữa HTML và XHTML

Cấu trúc văn bản

  • XHTML DOCTYPE là bắt buộc
  • Thuộc tính xmlns trong thẻ <html> là bắt buộc.
  • Các thẻ <html>, <head>, <title> và <body> là bắt buộc.

Các phần tử trong XHTML

  • Các phần tử trong XHTML phải được lồng đúng quy cách.
  • Các phần tử trong XHTML phải luôn luôn được đóng.
  • Các phần tử trong XHTML phải viết dạng chữ thường.
  • Các phần tử trong XHTML phải có một phần tử gốc.

Các thuộc tính trong XHTML

  • Tên thuộc tính phải viết dạng chữ thường.
  • Giá trị thuộc tính phải nằm trong dấu trích dẫn.
  • Cấm không được đơn giản hóa thuộc tính.

<!DOCTYPE…> là bắt buộc

Văn bản XHTML phải có phần khai báo XHTML DOCTYPE.

Phải có các phần tử <html>, <head>, <title> và <body>, thuộc tính xmlns trong thẻ <html> phải xác định không gian xml cho văn bản. Ví dụ dưới đây cho thấy văn bản XHTML với các thẻ bắt buộc tối thiểu.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"https://hocjavascript.net/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="https://hocjavascript.net/xhtml">

<head>
 <title>Tiêu đề văn bản</title>
</head>

<body>
 nội dung
</body>

</html>Code language: HTML, XML (xml)

Phần tử XHTML phải được lồng đúng quy cách

Trong HTML, một số phần tử có thể lồng với nhau không theo đúng quy cách như ví dụ dưới đây.

<b><i>Văn bản in đậm và in nghiêng</b></i>Code language: HTML, XML (xml)

Nhưng trong XHTML, tất cả các phần tử phải được lồng đúng quy cách, như ví dụ dưới.

<b><i>Văn bản in đậm và in nghiêng</i></b>Code language: HTML, XML (xml)

Phần tử XHTML phải luôn được đóng

Viết như dưới đây là sai

<p>Đoạn văn 1
<p>Đoạn văn 2Code language: HTML, XML (xml)

Đúng là phải là thế này:

<p>Đoạn văn 1</p>
<p>Đoạn văn 2</p>Code language: HTML, XML (xml)

Phần tử rỗng cũng phải được đóng

Như ví dụ dưới đây là không hợp lệ.

Ngắt dòng: <br>
Đường nằm ngang: <hr>
Hình ảnh: <img src="vuive.gif" alt="Vui vẻ">Code language: HTML, XML (xml)

Mà phải viết như dưới đây.

Ngắt dòng: <br />
Đường nằm ngang: <hr />
Hình ảnh: <img src="vuive.gif" alt="Vui vẻ" />Code language: HTML, XML (xml)

Phần tử trong XHTML phải viết bằng chữ thường

Viết như dưới đây là sai.

<BODY>
 <P>Đoạn văn</P>
</BODY>Code language: HTML, XML (xml)

Mà phải viết chữ thường như dưới đây.

<body>
 <p>Đoạn văn</p>
</body>Code language: HTML, XML (xml)

Tên thuộc tính trong XHTML phải viết bằng chữ thường

Không viết <table WIDTH="100%"> mà phải viết <table width="100%">

Giá trị thuộc tính phải nằm trong dấu trích dẫn

Không viết <table width=100%> mà phải viết <table width="100%">

Không được đơn giản hóa thuộc tính

Sai

<input type="checkbox" name="vehicle" value="car" checked />Code language: HTML, XML (xml)

Đúng

<input type="checkbox" name="vehicle" value="car" checked="checked" />Code language: HTML, XML (xml)

Sai

<input type="text" name="lastname" disabled />Code language: HTML, XML (xml)

Đúng

<input type="text" name="lastname" disabled="disabled" />Code language: HTML, XML (xml)

Cách chuyển đổi từ HTML sang XHTML

  • Thêm XHTML <!DOCTYPE> vào dòng đầu tiên của mỗi trang
  • Thêm thuộc tính xmlns vào phần tử html của mỗi trang
  • Đổi tất cả các tên phần tử sang dạng chữ thường
  • Đóng tất cả các phần tử rỗng
  • Đổi tất cả tên thuộc tính sang dạng chữ thường
  • Đặt vào dấu trích dẫn tất cả các giá trị thuộc tính

Kết luận

Qua đây là một số chia sẻ về so sánh HTML và XHTML, mời bạn tiếp tục theo dõi các bài viết sau để hiểu rõ hơn về HTML.

Các bạn có thể tham khảo các bài viết hay về HTML tại đây.


Hãy tham gia nhóm Học lập trình để thảo luận thêm về các vấn đề cùng quan tâm.

Leave a Reply

Your email address will not be published. Required fields are marked *