Trong HTML, phần tử DOCTYPE
phải đến trước, theo sau là một <html>
phần tử, phần tử này phải chứa <head>
phần tử chứa <title>
phần tử, theo sau là <body>
phần tử. Xem mô tả cấu trúc chung của tài liệu HTML trong HTML 4.01 và bản nháp HTML5 ; các yêu cầu thực tế hầu hết giống nhau DOCTYPE
, nhưng chúng được mô tả khác nhau.
Các thẻ thực tế ( <html>
, </html>
, <head>
, vv) là không bắt buộc; các phần tử sẽ được tạo tự động nếu các thẻ không tồn tại. <title>
là thẻ bắt buộc duy nhất trong HTML. Tài liệu HTML 4.01 hợp lệ ngắn nhất (ít nhất mà tôi có thể tạo) là (cần một <p>
vì cần phải có một cái gì đó trong tài liệu <body>
để hợp lệ):
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd"><title></title><p>
Và tài liệu HTML5 hợp lệ ngắn nhất:
<!DOCTYPE html><title></title>
Lưu ý rằng trong XHTML, tất cả các thẻ phải được chỉ định rõ ràng; không có phần tử nào sẽ được chèn ngầm.
Trình duyệt thực hiện đánh giá loại nội dung trong một số trường hợp để xác định loại tài nguyên chưa được chỉ định bằng cách sử dụng Content-Type
tiêu đề HTTP và cũng có thể đánh giá mã hóa ký tự nếu Content-Type
tiêu đề không được cung cấp hoặc không bao gồm một charset
(bạn thường nên thử để bao gồm các tiêu đề này và đảm bảo rằng chúng chính xác, nhưng có một số trường hợp bạn không thể, chẳng hạn như tệp cục bộ không được chuyển qua HTTP). Tuy nhiên, họ chỉ đánh hơi một số byte giới hạn ở đầu tài liệu cho những mục đích này, vì vậy bất kỳ thứ gì nhằm mục đích ảnh hưởng đến việc đánh hơi nội dung hoặc đánh hơi mã hóa ký tự phải ở gần phần đầu của tài liệu.
Vì lý do này, HTML5 chỉ định rằng bất kỳ meta
thẻ nào được sử dụng để chỉ định bộ ký tự (hoặc <meta http-equiv="Content-type" content="text/html; charset=...">
hoặc đơn giản <meta charset=...>
) phải nằm trong 1024 byte đầu tiên của tệp để có hiệu lực. Vì vậy, nếu bạn định bao gồm thông tin mã hóa ký tự trong tài liệu của mình, bạn nên đặt thẻ sớm vào tệp, thậm chí có thể trước <title>
phần tử. Nhưng hãy nhớ rằng thẻ này là không cần thiết nếu bạn chỉ định đúng Content-type
tiêu đề.
Trong CSS, các khai báo kiểu sau được ưu tiên hơn các khai báo trước đó , tất cả các khai báo khác đều bình đẳng. Vì vậy, bạn nên đặt các bảng định kiểu chung nhất có thể bị ghi đè trước đó và các bảng định kiểu cụ thể hơn sau đó.
Vì lý do hiệu suất, có thể là một ý kiến hay nếu bạn đặt các tập lệnh ở cuối trang, ngay trước </body>
vì việc tải các tập lệnh sẽ chặn việc hiển thị trang.
Rõ ràng, <script>
các thẻ nên được sắp xếp theo thứ tự để các tập lệnh phụ thuộc vào từng thứ tự có các phần phụ thuộc được tải trước.
Nhìn chung, ngoài những ràng buộc mà tôi đã chỉ định, thứ tự của các thẻ bên trong <head>
không quá quan trọng, ngoài việc dễ đọc. Tôi có xu hướng thích nhìn <title>
về phía trên cùng và đặt các <meta>
thẻ khác theo một số thứ tự hợp lý.
Hầu hết thời gian, thứ tự bạn nên đặt mọi thứ vào nội dung của tài liệu HTML phải là thứ tự chúng sẽ được hiển thị hoặc thứ tự chúng nên được truy cập. Bạn có thể sử dụng CSS để sắp xếp lại mọi thứ, nhưng trình đọc màn hình nói chung sẽ đọc mọi thứ theo thứ tự nguồn, các chỉ mục tìm kiếm sẽ trích xuất mọi thứ theo thứ tự nguồn, v.v.