2011-11-08 29 views
5

Câu hỏi của tôi rất đơn giản:Dòng mới và các ký tự đặc biệt trong thuộc tính HTML

Điều sau đây có hợp lệ không? Ngay cả khi nó được, nó sẽ phá vỡ trong một số trình duyệt?

<div data-text="Blah blah blah 
More blah 
And just a little extra blah to finish"> ... </div> 

Những nhân vật "phải" được mã hóa trong các giá trị thuộc tính? Tôi biết " phải là &quot;, nhưng có bất kỳ mã nào khác bắt buộc phải được mã hóa không?

+0

Còn HTML4 thì sao? Các quy tắc có khác nhau ở đó không? –

Trả lời

5

Điều sau đây có hợp lệ không?

Đó là một đoạn HTML5 hợp lệ, có.

nó có bị hỏng trong một số trình duyệt không?

Không chắc chắn.

Ký tự nào "phải" được mã hóa trong giá trị thuộc tính? Tôi biết " phải là &quot;, nhưng có bất kỳ mã nào khác bắt buộc phải được mã hóa không?

Điều đó tùy thuộc vào việc giá trị thuộc tính có được trích dẫn kép hay không, được trích dẫn đơn hoặc không được trích dẫn.

Đối với biểu mẫu được trích dẫn kép " phải được thay thế bằng tham chiếu ký tự và & có thể cần được thay thế bằng tham chiếu ký tự tùy thuộc vào các ký tự theo sau. Xem attribute-value-double-quoted-state

Đối với biểu mẫu được trích dẫn đơn ' phải được thay thế bằng tham chiếu ký tự và & có thể cần được thay thế bằng tham chiếu ký tự tùy thuộc vào các ký tự theo sau. Xem attribute-value-single-quoted-state

Đối với hình thức không thể viện chứng TAB, LINEFEED, FORMFEED, SPACE, > phải được thay thế bằng tài liệu tham khảo tính cách của họ, và & có thể cần phải được thay thế bằng cách tham khảo nhân vật của nó phụ thuộc vào các nhân vật mà theo nó. Xem attribute-value-unquoted-state

+0

Có nhiều ký tự phải được mã hóa như một phần của [giá trị thuộc tính chưa được trích dẫn] (http://mathiasbynens.be/notes/unquoted-attribute-values). Ví dụ, ký tự '' 'phải được mã hóa, nếu không nó sẽ là HTML5 không hợp lệ. Lý do cho điều này là ký tự '' 'có thể được sử dụng để tách ra khỏi một giá trị thuộc tính unquoted trong các phiên bản IE cũ. Đây là một công cụ sẽ cho bạn biết liệu một giá trị thuộc tính đã cho có được phép sử dụng không có dấu ngoặc kép hay không: http://mothereff.in/unquoted-attributes#foo%60bar –

+0

Khi nào cần phải mã hóa '&', hãy xem http://mathiasbynens.be/notes/ambiguous-ampersands. –

1

HTML 5 spec

Có các yêu cầu khác nhau cho các thuộc tính khác nhau nên không có một câu trả lời. Ví dụ: Ví dụ, thuộc tính tiêu đề cho phép nguồn cấp dữ liệu đường, nhưng thuộc tính lớp là một dòng không gian tách biệt của các chuỗi mã.

Đối với yếu tố dữ liệu mặc dù spec nói về không gian tên:

không chứa các ký tự trong phạm vi U + 0041 đến U + 005A (LATIN VỐN THƯ A đến LATIN VỐN THƯ Z).

Ngoài ra, nó không tạo ra bất kỳ sự phân biệt nào.

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