Tài liệu này được dịch từ trang web của Các: Đừng sử dụng “DTD tùy chỉnh”!
Nó có thể có lỗi. Bạn có thể tham khảo các tài liệu chính
thức của bản gốc tiếng Anh tại:
|
Trang Mẫu W3C có chứa một phần tử nhấp nháy <blink>. <blink> không phải là một phần tử HTML nhưng trang này vẫn hợp lệ bởi một số kiểm tra tính hợp lệ HTML . Vậy thủ thuật là gì?
Thực tế, trang này hợp lệ theo cú pháp, bởi phần tử đó được khai báo trong tệp tin. Khi các yếu tố này được khai báo thích hợp thì trang này vẫn hợp lệ trong ngữ cảnh SGML/XML.
Nhưng trang này không hợp lệ về cú pháp. Nó là một tệp tin SGML, chứ không phải là một tệp tin HTML. Hiện không có chuẩn chính thức nào định nghĩa <blink> là gì.
Các trang mẫu W3C sử dụng một phần tử phi chuẩn như một trò đùa. Nếu bạn biết về lịch sử của CSS, thì có thể bạn nhớ là một trong những lý do để CSS chính xác là tránh các trình duyệt phát minh ra các phần tử phi chuẩn riêng của mình, như >blink>.
Về mặt kỹ thuật, việc thêm vào các phần tử phi chuẩn được thực hiện bằng cách viết một “DTD tùy chỉnh” và đưa nó vào trong dòng đầu tiên của tệp tin (the DOCTYPE line). Một DTD tùy chỉnh có thể tạo ra, ví dụ, bằng cách copy HTML4 DTD và sửa nó.
Đừng làm như vậy! Các tệp tin cần có ý nghĩa cũng như cần cú pháp chính xác. SGML và XML chỉ định nghĩa cú pháp. HTML và XHTML định nghĩa ý nghĩa. Nếu bạn chèn thêm các phần tử không được định nghĩa theo một quy chuẩn, thì chỉ bản thân bạn biết ý nghĩa của nó là gì mà thôi. Và trong 20 hay 50 năm, thậm chí bạn còn có thể không biết gì về nó nữa…
Tất nhiên, bạn có thể thử nghiệm, như để làm việc với các dạng thức Web sau này, nhưng ngoài việc đó ra thì bạn không nên sử dụng các phần tử riêng của mình.