otofokus = “otofokus” mu yoksa otofokus mu?


87

HTML'nin önceki sürümlerindeki (HTML5'ten önce) çoğu özniteliğin (belki de tümünü) değerlere sahip olması için gerekli öznitelikleri hatırlıyorum readonly="readonly".

Bu, HTML5 ve autofocusöznitelik için doğru mu?


1
her ikisi de boole öznitelikleriyle ilgili olduğu için (işaretlenmemiş) stackoverflow.com/questions/1033944/… olası kopyası
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功

Benzer olduklarına katılıyorum, ancak farklı özellikler hakkında sorular sordukları için biraz farklı.
Darryl Hein

1
otomatik odaklama yalnızca çalışır. FF, Opera ve Chrome'da test etti ..
Sohail Arif

Yanıtlar:


94

HTML'de, istediğiniz gibi değerlerle veya değerler olmadan boole niteliklerini kullanırsınız. Bir boolean, W3C için, otofokus gibi böyle yazılabilir autofocusya autofocus="autofocus"da ya autofocus="".

Otomatik odaklama istemiyorsanız, sadece yazmayın.

Ben XHTML bütün özelliklerin değerlerini gerektirdiğinden karıştı düşünüyorum: attributes="values".

HTML'de boole özellik kullanımı hakkında bazı bilgiler: http://www.whatwg.org/specs/web-apps/current-work/multipage/common-microsyntaxes.html#boolean-attribute


19
XHTML'den bahsetmek için +1. XHTML'nin XML uygunluğu, bir disabled="disabled". Aynı şey kapanış etiketleri için de geçerlidir. HTML'de her etiketin kapatılması gerekmez (örn. Br veya input), ancak XHTML'nin geçerli XML olması gerektiğinden, kapanış etiketlerine de ihtiyacınız vardır.
Tim Büthe

4
"XHTML, şimdiye kadar bir olmasının tek nedenidir disabled="disabled"". Ve SGML, XHTML'nin sadece silly="silly"yerine bool sözdizimine sahip olmasının tek nedenidir whatever="true"ve HTML, this="false"bunun = doğru anlamına gelmesinin tek nedenidir . :)
Sz.

52

HTML5 spesifikasyonundan alıntı yapmak ve Pekka'yı biraz genişletmek:

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

Otomatik odaklama özelliği, bir boole özniteliğidir.

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

Bir öğede boole özniteliğinin varlığı gerçek değeri temsil eder ve özniteliğin yokluğu yanlış değeri temsil eder.

Öznitelik mevcutsa, değeri ya boş dize ya da ASCII büyük / küçük harfe duyarlı olmayan, özniteliğin kurallı adı ile eşleşen ve başında veya sonunda boşluk olmayan bir değer olmalıdır.

Sonuç :

Aşağıdakiler geçerli, eşdeğer ve doğrudur :

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

Aşağıdakiler geçersizdir :

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

Özniteliğin yokluğu, false için geçerli tek sözdizimidir :

<input type="text"/>

Öneri

Geçerli XHTML yazmayı önemsiyorsanız, kullanın autofocus="autofocus"çünkü <input autofocus>geçersizdir ve diğer alternatifler daha az okunabilirdir. Aksi <input autofocus>takdirde, daha kısa olduğu için kullanın .


1
"Eğer önemsiyorsanız ... XHTML". Hayır! Bırak ölsün.
Dem Pilafian

22

Hayır , niteliğin kendisini belirtmeniz yeterlidir. HTML 4'te de böyleydi .

Bazı öznitelikler boole öznitelikleridir . Bir öğede boole özniteliğinin varlığı gerçek değeri temsil eder ve özniteliğin yokluğu yanlış değeri temsil eder.

Öznitelik mevcutsa, değeri ya boş dize ya da ASCII büyük / küçük harfe duyarlı olmayan, özniteliğin kurallı adı ile eşleşen ve başında veya sonunda boşluk olmayan bir değer olmalıdır.

Misal:

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

10
Kabul edilen cevabı Tim'e verdi ... Temsilciye senden daha çok ihtiyacı var :)
Darryl Hein
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.