2011-08-03 17 views
5

Trong HTML 4 và XHTML 1, bạn không thể gán lớp học cho phần tử <head>. Tuy nhiên, trong XHTML 1.0 bạn có thể cung cấp cho nó một ID. Trong HTML5 có vẻ như bạn có thể cho nó một lớp. Tôi tò mò, tại sao bạn muốn?Chỉ định thuộc tính lớp cho phần tử <head> trong HTML5

+1

Tôi cho rằng điều này là để phân tích cú pháp ngữ nghĩa hơn bất kỳ thứ gì. –

+1

Như những người khác đã đề cập, không có lý do thực sự nào để không cho phép điều đó. Lưu ý rằng bạn có thể [tạo các phần tử ẩn như '' hiển thị bằng CSS] (http://mathiasbynens.be/notes/css-hidden-elements) (mặc dù điều này không yêu cầu thêm thuộc tính 'class' hoặc' id' cho nó). –

Trả lời

5

class là một trong những điều được gọi là global attributes (cùng với các sự kiện toàn cầu). Họ sẽ phải áp dụng cho mọi phần tử trong DOM, bất kể bản chất của nó.

Tôi tin rằng nó liên quan đến API. Thông số xác định every DOM HTML element để kế thừa từ giao diện cơ sở có tên HTMLElement xác định các thuộc tính và sự kiện toàn cầu nói trên. Cụ thể:

interface HTMLElement : Element { 

    // ... 

    // metadata attributes 
      attribute DOMString id; 
      attribute DOMString title; 
      attribute DOMString lang; 
      attribute DOMString dir; 
      attribute DOMString className; 
    readonly attribute DOMTokenList classList; 
    readonly attribute DOMStringMap dataset; 

Với những gì đã nói, các biên tập viên (s) của spec đã làm cho các lưu ý sau đây vào cuối danh sách thuộc tính toàn cầu/sự kiện:

Lưu ý: Trong khi những thuộc tính này áp dụng đối với tất cả các yếu tố, chúng không hữu ích trên tất cả các yếu tố. Ví dụ: chỉ media elements sẽ nhận được sự kiện volumechange do tác nhân người dùng kích hoạt.

Vì vậy, tôi cho rằng họ không mong đợi bạn, nhưng họ có thể không nghĩ ra một lý do để cho phép nó hoặc không để cho phép nó. Nó chỉ là một phần của API (ví dụ: HTMLHeadElement một HTMLElement).

+0

+1 cho câu trả lời kỹ thuật rất hay. Vì vậy, yeah, tại sao * sẽ * bạn muốn sử dụng một lớp học trên ' '? –

+0

Dường như tôi đã giết chết câu cuối cùng trong bản chỉnh sửa của mình. – BoltClock

+0

Thú vị, tôi thêm một gợi ý ngôn ngữ không tồn tại '' và highlighter cú pháp nghĩ rằng tôi đang sử dụng C#. – BoltClock

Các vấn đề liên quan