2011-06-30 39 views
21

Thuộc tính ID trên phần tử HTML có được để trống không?ID có được để trống trong thẻ HTML không?

<div id=""></div> 

Tôi đang sử dụng mẫu có ID của phần tử được đặt bởi biến có thể không luôn có giá trị và tôi tự hỏi liệu điều này có thể gây ra bất kỳ sự cố không lường trước nào.

EDIT: "biến" thực sự là vùng có thể chỉnh sửa (khối) trong mẫu Django. Điều này có nghĩa là tôi không thể đặt bất kỳ logic điều kiện nào lên nó.

<div id="{% block id %}{% endblock %}"> 

Thay vì:

<div {% block id %}{% endblock %}> 

nào sẽ phải được thừa hưởng ở phụ mẫu như:

{% block id %}id="whatever"{% endblock %} 
+0

Tôi đang sử dụng [ractive.js] (http://www.ractivejs.org) và gặp sự cố tương tự. Bạn phải sử dụng: thay vì là một hạn chế đối với tôi, nhưng tôi được đính kèm với các quy tắc mẫu. – alexserver

Trả lời

21

Theo W3C:

ID và Mã thông báo NAME phải bắt đầu bằng một chữ cái ([A-Za-z]) có thể được theo sau bởi bất kỳ số chữ cái nào, số ([0-9]), dấu gạch nối ("-"), gạch dưới ("_"), dấu hai chấm (":") và dấu chấm (".").

(Nguồn: Basic HTML data types)

này sẽ chỉ ra rằng một giá trị trống cho thuộc tính là không hợp lệ phù hợp với các định nghĩa ở trên.

Đang cố gắng để xác nhận đối với một thuộc tính ID rỗng trả về như sau:

cú pháp của giá trị thuộc tính không phù hợp với trị giá khai báo

<div id="">something</div>

Giá trị của một thuộc tính chứa một cái gì đó không được phép theo cú pháp được chỉ định cho loại thuộc tính đó. Ví dụ: thuộc tính "đã chọn" "được chọn" phải là được thu nhỏ là "đã chọn" hoặc được viết hoa đầy đủ là "đã chọn =" đã chọn ""; phiên bản "selected =" "" không được phép.

+0

Cố gắng nhập mã đó vào trình xác nhận W3C (http://validator.w3.org) sẽ trả về lỗi. – SteeveDroz

1

Tôi sẽ không đặt thành trống ban đầu, chỉ cần có tập lệnh (hoặc có nghĩa là chèn ID của bạn) nối thêm thuộc tính vào div. Bằng cách đó mã của bạn sẽ xác nhận, nếu điều đó có nghĩa là bất cứ điều gì cho bạn.

Thuộc tính trống không hợp lệ, nhưng không có thuộc tính hợp lệ. Không nên có bất kỳ vấn đề với nó, chỉ cần đảm bảo rằng bạn đang giữ ID của bạn duy nhất. Tôi chắc rằng bạn biết điều đó, mặc dù.

1

Nó sẽ không xác thực là tài liệu hợp lệ.

W3 validator sẽ đưa ra một lỗi tương tự như: cú pháp của giá trị thuộc tính không phù hợp với giá trị tuyên bố

Ngoài ra id của nên độc đáo. Vì vậy, nếu bạn có nhiều hơn một với nó sẽ vi phạm quy tắc đó quá.

4

Không sao, không trình duyệt nào bị lỗi trên ID trống. Dù sao, nếu bạn muốn tạo HTML hợp lệ, bạn nên tạo ID giả. Nếu bạn muốn tạo ra năm-sao-hợp lệ-HTML, các ID giả mạo nên khác nhau, nói, tiền tố + truy cập.

+1

Tôi đoán tôi luôn có thể đặt một số ID mặc định, bao quát sẽ được sử dụng nếu không có ID nào được cung cấp. Vì thẻ này sẽ chỉ xuất hiện một lần trên mỗi trang, thẻ này sẽ luôn là duy nhất. – Soviut

+1

Câu trả lời của bạn đưa tôi đến giải pháp đúng, nhưng tôi phải đánh dấu câu trả lời của @ Jamie bởi vì anh ấy đã đưa ra câu trả lời tốt hơn về lý do ID không hợp lệ. – Soviut

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