nó là autofocus = “autofocus” hay autofocus?


87

Tôi dường như nhớ lại hầu hết (có thể là tất cả) các thuộc tính trong các phiên bản trước đây của HTML (trước HTML5) các thuộc tính bắt buộc phải có giá trị, như readonly="readonly".

Điều này có đúng với HTML5 và autofocusthuộc tính không?


1
bản sao có thể có của stackoverflow.com/questions/1033944/… vì cả hai đều về thuộc tính boolean (không được gắn cờ)
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功

Tôi đồng ý rằng chúng giống nhau, nhưng hơi khác vì chúng đang hỏi về các thuộc tính khác nhau.
Darryl Hein

1
tự động lấy nét chỉ hoạt động. đã thử nghiệm nó trong FF, Opera và Chrome ..
Sohail Arif

Câu trả lời:


94

Trong HTML, bạn sử dụng các thuộc tính boolean có hoặc không có giá trị tùy thích. Một boolean, cho W3C, như tự động lấy nét có thể được viết như thế autofocushay autofocus="autofocus"hay còn autofocus="".

Nếu bạn không muốn lấy nét tự động, chỉ cần không viết nó.

Tôi nghĩ rằng bạn đang bối rối vì XHTML đòi hỏi giá trị cho tất cả các thuộc tính: attributes="values".

Dưới đây là một số thông tin về việc sử dụng thuộc tính boolean trong HTML: http://www.whatwg.org/specs/web-apps/current-work/multipage/common-microsyntaxes.html#boolean-attribute


19
+1 để đề cập đến XHTML. Sự phù hợp XML của XHTML là lý do duy nhất tại sao có một disabled="disabled". Điều tương tự cũng xảy ra đối với các thẻ đóng. Trong HTML, không phải mọi thẻ đều cần được đóng (ví dụ br hoặc input) nhưng vì XHTML phải là XML hợp lệ nên bạn cũng cần các thẻ đóng.
Tim Büthe

4
"XHTML là lý do duy nhất tại sao từng có disabled="disabled"". Và SGML là lý do duy nhất, tại sao XHTML có silly="silly"cú pháp bool thay vì chỉ whatever="true", và HTML là lý do duy nhất tại sao this="false"có thể có nghĩa this = true. :)
Sz.

52

Trích dẫn thông số kỹ thuật HTML5 và mở rộng một chút trên Pekka:

http://www.w3.org/TR/html5/forms.html#autofocusing-a-form-control:-the-autofocus-attribute :

Thuộc tính tự động lấy nét là một thuộc tính boolean.

http://www.w3.org/TR/html5/infraosystem.html#boolean-attributes :

Sự hiện diện của thuộc tính boolean trên một phần tử đại diện cho giá trị true và sự vắng mặt của thuộc tính đại diện cho giá trị false.

Nếu thuộc tính có mặt, giá trị của nó phải là chuỗi trống hoặc giá trị là một đối sánh không phân biệt chữ hoa chữ thường ASCII cho tên chuẩn của thuộc tính, không có khoảng trắng ở đầu hoặc cuối.

Kết luận :

Những điều sau là hợp lệ, tương đương và đúng :

<input type="text" autofocus />
<input type="text" autofocus="" />
<input type="text" autofocus="autofocus" />
<input type="text" autofocus="AuToFoCuS" />

Những điều sau đây không hợp lệ :

<input type="text" autofocus="0" />
<input type="text" autofocus="1" />
<input type="text" autofocus="false" />
<input type="text" autofocus="true" />

Sự vắng mặt của thuộc tính là cú pháp hợp lệ duy nhất cho false :

<input type="text"/>

sự giới thiệu

Nếu bạn quan tâm đến việc viết XHTML hợp lệ, hãy sử dụng autofocus="autofocus", vì <input autofocus>nó không hợp lệ và các lựa chọn thay thế khác khó đọc hơn. Nếu không, chỉ cần sử dụng <input autofocus>vì nó ngắn hơn.


1
"Nếu bạn quan tâm đến ... XHTML". Không. Hãy để nó chết.
Dem Pilafian

22

Không , chỉ cần chỉ định thuộc tính là đủ. Đó cũng là cách đó trong HTML 4 .

Một số thuộc tính là thuộc tính boolean . Sự hiện diện của thuộc tính boolean trên một phần tử đại diện cho giá trị true và sự vắng mặt của thuộc tính đại diện cho giá trị false.

Nếu thuộc tính có mặt, giá trị của nó phải là chuỗi trống hoặc giá trị là một đối sánh không phân biệt chữ hoa chữ thường ASCII cho tên chuẩn của thuộc tính, không có khoảng trắng ở đầu hoặc cuối.

Thí dụ:

<label><input type=checkbox checked name=cheese disabled> Cheese</label>

10
Gave Tim câu trả lời được chấp nhận ... anh ta cần những đại diện nhiều hơn bạn :)
Darryl Hein
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.