HTML5: Các giá trị được phép cho các thuộc tính ID & Class
Kể từ HTML5, các hạn chế duy nhất đối với giá trị của ID là:
- phải là duy nhất trong tài liệu
- không được chứa bất kỳ ký tự khoảng trắng nào
- phải chứa ít nhất một ký tự
Các quy tắc tương tự áp dụng cho các lớp (tất nhiên ngoại trừ tính duy nhất).
Vì vậy, giá trị có thể là tất cả các chữ số, chỉ một chữ số, chỉ các ký tự dấu chấm câu, bao gồm các ký tự đặc biệt, bất cứ điều gì. Chỉ cần không có khoảng trắng. Điều này rất khác với HTML4.
Trong HTML 4, các giá trị ID phải bắt đầu bằng một chữ cái, sau đó chỉ có thể được theo sau bởi các chữ cái, chữ số, dấu gạch nối, dấu gạch dưới, dấu hai chấm và dấu chấm.
Trong HTML5, đây là hợp lệ:
<div id="999"> ... </div>
<div id="#%LV-||"> ... </div>
<div id="____V"> ... </div>
<div id="⌘⌥"> ... </div>
<div id="♥"> ... </div>
<div id="{}"> ... </div>
<div id="©"> ... </div>
<div id="♤₩¤☆€~¥"> ... </div>
Hãy nhớ rằng việc sử dụng số, dấu chấm câu hoặc ký tự đặc biệt trong giá trị của ID có thể gây rắc rối trong các bối cảnh khác (ví dụ: CSS, JavaScript, regex).
Ví dụ: ID sau hợp lệ trong HTML5:
<div id="9lions"> ... </div>
Tuy nhiên, nó không hợp lệ trong CSS:
Từ thông số CSS2.1:
4.1.3 Nhân vật và vụ án
Trong CSS, các mã định danh (bao gồm tên thành phần, lớp và ID trong bộ chọn) chỉ có thể chứa các ký tự [a-zA-Z0-9] và ISO 10646 ký tự U + 00A0 trở lên, cộng với dấu gạch nối (-) và dấu gạch dưới ( _); chúng không thể bắt đầu bằng một chữ số, hai dấu gạch nối hoặc dấu gạch nối theo sau là một chữ số .
Trong hầu hết các trường hợp, bạn có thể thoát khỏi các ký tự trong bối cảnh nơi chúng có các hạn chế hoặc ý nghĩa đặc biệt.
Tài liệu tham khảo của W3C
HTML5
3.2.5.1 id
Thuộc tính
Các id
thuộc tính xác định danh duy nhất yếu tố của nó (ID).
Giá trị phải là duy nhất trong số tất cả các ID trong cây con nhà của phần tử và phải chứa ít nhất một ký tự. Giá trị không được chứa bất kỳ ký tự khoảng trắng.
Lưu ý: Không có hạn chế nào khác về hình thức ID có thể mất; đặc biệt, ID có thể chỉ bao gồm các chữ số, bắt đầu bằng một chữ số, bắt đầu bằng dấu gạch dưới, chỉ bao gồm dấu chấm câu, v.v.
3.2.5.7 class
Thuộc tính
Thuộc tính, nếu được chỉ định, phải có một giá trị là một tập hợp các mã thông báo được phân tách bằng dấu cách đại diện cho các lớp khác nhau mà phần tử thuộc về.
Các lớp mà một phần tử HTML đã gán cho nó bao gồm tất cả các lớp được trả về khi giá trị của thuộc tính lớp được phân chia trên các khoảng trắng. (Các bản sao được bỏ qua.)
Không có hạn chế bổ sung nào đối với các tác giả mã thông báo có thể sử dụng trong thuộc tính lớp, nhưng các tác giả được khuyến khích sử dụng các giá trị mô tả bản chất của nội dung, thay vì các giá trị mô tả cách trình bày nội dung mong muốn.