Wydaje mi się, że większość (może wszystkie) atrybuty we wcześniejszych wersjach HTML (przed HTML5) wymagały atrybutów, aby miały wartości, takie jak readonly="readonly".
Czy to prawda w przypadku HTML5 i autofocusatrybutu?
Zgodziłbym się, że są podobne, ale nieco inne, ponieważ pytają o różne cechy.
Darryl Hein
1
działa tylko autofokus. przetestowałem to w FF, Opera i Chrome ..
Sohail Arif
Odpowiedzi:
94
W HTML używasz atrybutów logicznych z wartościami lub bez, jak chcesz. Wartość logiczna, dla W3C, jak autofocus może być napisany tak autofocuslub autofocus="autofocus"czy również autofocus="".
Jeśli nie chcesz autofokusa, po prostu go nie pisz.
Myślę, że są zdezorientowani, ponieważ XHTML wymaga wartości dla wszystkich atrybutów: attributes="values".
+1 za wzmiankę o XHTML. Zgodność XHTML z XML jest jedynym powodem, dla którego kiedykolwiek istniał plik disabled="disabled". To samo dotyczy zamykania tagów. W HTML nie każdy tag musi być zamknięty (np. Br lub input), ale ponieważ XHTML musi być poprawnym XML-em, potrzebujesz również znaczników zamykających.
Tim Büthe
4
„XHTML to jedyny powód, dla którego kiedykolwiek istniał disabled="disabled"”. A SGML jest jedynym powodem, dla którego XHTML ma silly="silly"składnię bool zamiast just whatever="true", a HTML jest jedynym powodem, dla którego this="false"może to oznaczać = true. :)
Sz.
52
Cytując specyfikację HTML5 i rozwijając nieco na Pekce:
Obecność atrybutu logicznego w elemencie reprezentuje wartość prawdziwą, a brak atrybutu reprezentuje wartość fałszywą.
Jeśli atrybut jest obecny, jego wartością musi być pusty ciąg lub wartość będąca dopasowaniem ASCII bez rozróżniania wielkości liter dla nazwy kanonicznej atrybutu, bez wiodących ani końcowych białych znaków.
Brak atrybutu jest jedyną prawidłową składnią dla fałszu :
<inputtype="text"/>
Rekomendacje
Jeśli zależy ci na pisaniu poprawnego XHTML, użyj autofocus="autofocus", ponieważ <input autofocus>jest nieprawidłowy, a inne alternatywy są mniej czytelne. W przeciwnym razie używaj, <input autofocus>ponieważ jest krótszy.
Nie , wystarczy określić sam atrybut. Tak było również w HTML 4 .
Wiele atrybutów to atrybuty logiczne . Obecność atrybutu logicznego w elemencie reprezentuje wartość prawdziwą, a brak atrybutu reprezentuje wartość fałszywą.
Jeśli atrybut jest obecny, jego wartością musi być pusty ciąg lub wartość będąca dopasowaniem ASCII bez rozróżniania wielkości liter dla nazwy kanonicznej atrybutu, bez wiodących ani końcowych białych znaków.
Odpowiedzi:
W HTML używasz atrybutów logicznych z wartościami lub bez, jak chcesz. Wartość logiczna, dla W3C, jak autofocus może być napisany tak
autofocus
lubautofocus="autofocus"
czy równieżautofocus=""
.Jeśli nie chcesz autofokusa, po prostu go nie pisz.
Myślę, że są zdezorientowani, ponieważ XHTML wymaga wartości dla wszystkich atrybutów:
attributes="values"
.Oto kilka informacji na temat użycia atrybutów logicznych w HTML: http://www.whatwg.org/specs/web-apps/current-work/multipage/common-microsyntaxes.html#boolean-attribute
źródło
disabled="disabled"
. To samo dotyczy zamykania tagów. W HTML nie każdy tag musi być zamknięty (np. Br lub input), ale ponieważ XHTML musi być poprawnym XML-em, potrzebujesz również znaczników zamykających.disabled="disabled"
”. A SGML jest jedynym powodem, dla którego XHTML masilly="silly"
składnię bool zamiast justwhatever="true"
, a HTML jest jedynym powodem, dla któregothis="false"
może to oznaczać = true. :)Cytując specyfikację HTML5 i rozwijając nieco na Pekce:
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 :
Wniosek :
Poniższe są prawidłowe, równoważne i prawdziwe :
<input type="text" autofocus /> <input type="text" autofocus="" /> <input type="text" autofocus="autofocus" /> <input type="text" autofocus="AuToFoCuS" />
Poniższe są nieprawidłowe :
<input type="text" autofocus="0" /> <input type="text" autofocus="1" /> <input type="text" autofocus="false" /> <input type="text" autofocus="true" />
Brak atrybutu jest jedyną prawidłową składnią dla fałszu :
<input type="text"/>
Rekomendacje
Jeśli zależy ci na pisaniu poprawnego XHTML, użyj
autofocus="autofocus"
, ponieważ<input autofocus>
jest nieprawidłowy, a inne alternatywy są mniej czytelne. W przeciwnym razie używaj,<input autofocus>
ponieważ jest krótszy.źródło
Nie , wystarczy określić sam atrybut. Tak było również w HTML 4 .
Przykład:
<label><input type=checkbox checked name=cheese disabled> Cheese</label>
źródło