apakah itu autofocus = "autofocus" atau autofocus?

87

Sepertinya saya ingat sebagian besar (mungkin semua) atribut di versi HTML sebelumnya (sebelum HTML5) memerlukan atribut untuk memiliki nilai, seperti readonly="readonly".

Apakah ini benar untuk HTML5 dan autofocusatributnya?

Darryl Hein
sumber
1
kemungkinan duplikat stackoverflow.com/questions/1033944/… karena keduanya tentang atribut boolean (tidak ditandai)
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
Saya setuju bahwa mereka serupa, tetapi sedikit berbeda karena mereka menanyakan tentang atribut yang berbeda.
Darryl Hein
1
fokus otomatis hanya berfungsi. mengujinya di FF, Opera dan Chrome ..
Sohail Arif

Jawaban:

94

Di HTML, Anda menggunakan atribut boolean dengan atau tanpa nilai sesuka Anda. Sebuah boolean, untuk W3C, seperti autofocus dapat ditulis seperti itu autofocusatau autofocus="autofocus"atau juga autofocus="".

Jika Anda tidak ingin fokus otomatis, jangan menulisnya.

Saya pikir Anda bingung karena XHTML membutuhkan nilai-nilai untuk semua atribut: attributes="values".

Berikut beberapa informasi tentang penggunaan atribut boolean dalam HTML: http://www.whatwg.org/specs/web-apps/current-work/multipage/common-microsyntaxes.html#boolean-attribute

Tim
sumber
19
+1 untuk menyebutkan XHTML. Kesesuaian XML XHTML adalah satu-satunya alasan mengapa ada file disabled="disabled". Hal yang sama berlaku untuk tag penutup. Dalam HTML tidak setiap tag harus ditutup (misalnya br atau input) tetapi karena XHTML harus XML yang valid, Anda juga perlu tag penutup.
Tim Büthe
4
"XHTML adalah satu-satunya alasan mengapa pernah ada disabled="disabled"". Dan SGML adalah satu-satunya alasan, mengapa XHTML memiliki silly="silly"sintaks bool, bukan hanya whatever="true", dan HTML adalah satu-satunya alasan mengapa this="false"bisa berarti this = true. :)
Sz.
52

Mengutip spesifikasi HTML5 dan memperluas sedikit tentang Pekka:

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

Atribut autofokus adalah atribut boolean.

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

Kehadiran atribut boolean pada sebuah elemen merepresentasikan nilai sebenarnya, dan ketiadaan atribut merepresentasikan nilai false.

Jika atribut ada, nilainya harus berupa string kosong atau nilai yang cocok tidak peka huruf besar / kecil ASCII untuk nama kanonis atribut, tanpa spasi di depan atau di belakang.

Kesimpulan :

Berikut ini adalah valid, setara, dan benar :

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

Berikut ini tidak valid :

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

Tidak adanya atribut adalah satu-satunya sintaks yang valid untuk false :

<input type="text"/>

Rekomendasi

Jika Anda peduli tentang menulis XHTML yang valid, gunakan autofocus="autofocus", karena <input autofocus>tidak valid dan alternatif lain kurang dapat dibaca. Lain, gunakan saja <input autofocus>karena lebih pendek.

Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
sumber
1
"Jika Anda peduli tentang ... XHTML". Nggak. Biarkan itu mati.
Dem Pilafian
22

Tidak , cukup menentukan atribut itu sendiri. Begitu juga di HTML 4 .

Sejumlah atribut merupakan atribut boolean . Kehadiran atribut boolean pada sebuah elemen merepresentasikan nilai sebenarnya, dan ketiadaan atribut merepresentasikan nilai false.

Jika atribut ada, nilainya harus berupa string kosong atau nilai yang cocok tidak peka huruf besar / kecil ASCII untuk nama kanonis atribut, tanpa spasi di depan atau di belakang.

Contoh:

<label><input type=checkbox checked name=cheese disabled> Cheese</label>
Pekka
sumber
10
Memberi Tim jawaban yang diterima ... dia membutuhkan perwakilan lebih dari Anda :)
Darryl Hein