ฉันดูเหมือนจะจำได้มากที่สุด (อาจจะทั้งหมด) คุณลักษณะในรุ่นก่อนหน้านี้ของ HTML (ก่อน HTML5) readonly="readonly"
ที่จำเป็นคุณลักษณะที่จะมีค่าเช่น
นี่เป็นความจริงสำหรับ HTML5 และautofocus
แอตทริบิวต์หรือไม่
ฉันดูเหมือนจะจำได้มากที่สุด (อาจจะทั้งหมด) คุณลักษณะในรุ่นก่อนหน้านี้ของ HTML (ก่อน HTML5) readonly="readonly"
ที่จำเป็นคุณลักษณะที่จะมีค่าเช่น
นี่เป็นความจริงสำหรับ HTML5 และautofocus
แอตทริบิวต์หรือไม่
คำตอบ:
ใน HTML คุณใช้แอตทริบิวต์บูลีนที่มีหรือไม่มีค่าก็ได้ตามต้องการ บูลีนสำหรับ W3C เช่นออโต้โฟกัสสามารถเขียนได้เช่นนั้นautofocus
หรือautofocus="autofocus"
หรือแบบautofocus=""
นั้นก็ได้
หากคุณไม่ต้องการโฟกัสอัตโนมัติก็อย่าเขียนมัน
ฉันคิดว่าคุณสับสนเพราะ XHTML ต้องการค่าสำหรับแอตทริบิวต์ทั้งหมด: attributes="values"
ค่าสำหรับแอตทริบิวต์ทั้งหมด:
ข้อมูลบางส่วนเกี่ยวกับการใช้คุณลักษณะบูลีนใน HTML: http://www.whatwg.org/specs/web-apps/current-work/multipage/common-microsyntaxes.html#boolean-attribute
disabled="disabled"
. สิ่งเดียวกันกับการปิดแท็ก ใน HTML ไม่จำเป็นต้องปิดทุกแท็ก (เช่น br หรืออินพุต) แต่เนื่องจาก XHTML ต้องเป็น XML ที่ถูกต้องคุณจึงต้องปิดแท็กด้วย
disabled="disabled"
" และ SGML เป็นเหตุผลเดียวทำไม XHTML จึงมีsilly="silly"
ไวยากรณ์บูลแทนที่จะเป็น just whatever="true"
และ HTML เป็นเหตุผลเดียวว่าทำไมthis="false"
ถึงหมายถึงสิ่งนี้ = จริง :)
อ้างถึงข้อกำหนดHTML5และขยายเล็กน้อยบน Pekka:
http://www.w3.org/TR/html5/forms.html#autofocusing-a-form-control:-the-autofocus-attribute :
แอตทริบิวต์ออโต้โฟกัสเป็นแอตทริบิวต์บูลีน
http://www.w3.org/TR/html5/infrastructure.html#boolean-attributes :
การมีแอตทริบิวต์บูลีนในองค์ประกอบแสดงถึงค่าที่แท้จริงและการไม่มีแอตทริบิวต์แสดงถึงค่าเท็จ
หากแอตทริบิวต์มีอยู่ค่าของมันจะต้องเป็นสตริงว่างหรือค่าที่จับคู่แบบไม่คำนึงถึงตัวพิมพ์เล็กและใหญ่ของ ASCII สำหรับชื่อมาตรฐานของแอตทริบิวต์โดยไม่มีช่องว่างนำหน้าหรือต่อท้าย
สรุป :
สิ่งต่อไปนี้ถูกต้องเทียบเท่าและเป็นจริง :
<input type="text" autofocus />
<input type="text" autofocus="" />
<input type="text" autofocus="autofocus" />
<input type="text" autofocus="AuToFoCuS" />
ต่อไปนี้ไม่ถูกต้อง :
<input type="text" autofocus="0" />
<input type="text" autofocus="1" />
<input type="text" autofocus="false" />
<input type="text" autofocus="true" />
การไม่มีแอตทริบิวต์เป็นเพียงไวยากรณ์ที่ถูกต้องสำหรับfalse :
<input type="text"/>
คำแนะนำ
หากคุณสนใจเกี่ยวกับการเขียน XHTML ที่ถูกต้องให้ใช้autofocus="autofocus"
เนื่องจาก<input autofocus>
ไม่ถูกต้องและทางเลือกอื่น ๆ จะอ่านได้น้อยลง อย่างอื่นก็ใช้<input autofocus>
ตามที่สั้นกว่า
ไม่ได้ระบุแอตทริบิวต์เองก็เพียงพอแล้ว มันเป็นวิธีการที่ยังอยู่ในHTML 4
แอตทริบิวต์จำนวนหนึ่งเป็นคุณลักษณะบูลีนคุณลักษณะแบบบูลการมีแอตทริบิวต์บูลีนในองค์ประกอบแสดงถึงค่าที่แท้จริงและการไม่มีแอตทริบิวต์แสดงถึงค่าเท็จ
หากแอตทริบิวต์มีอยู่ค่าของมันจะต้องเป็นสตริงว่างหรือค่าที่จับคู่แบบไม่คำนึงถึงตัวพิมพ์เล็กและใหญ่ของ ASCII สำหรับชื่อมาตรฐานของแอตทริบิวต์โดยไม่มีช่องว่างนำหน้าหรือต่อท้าย
ตัวอย่าง:
<label><input type=checkbox checked name=cheese disabled> Cheese</label>