2009-05-29 19 views
45

HTML niteliğinde name = değer çiftleri, 'name' kısmı için izin verilen karakterler nedir? ..... Bazı common attributes'a baktığımızda sadece harflerin (az ve AZ) kullanıldığını, ancak diğer karakterlerin de nelere izin verilebileceğini görüyoruz? ... belki rakamlar (0-9), tire (-) ve dönemler (.) ... bunun için herhangi bir özellik var mı?HTML özellik adına hangi karakterlere izin verilir?

+0

Bu, Angular 2: P –

cevap

41

"İzin verildi" ile ne demek istediğine bağlı. Her etiketin geçerli olan sabit bir özellik adları listesi vardır ve html'de büyük/küçük harfe duyarsız olurlar. Önemli bir anlamda, yalnızca doğru dizideki bu karakterlerin "izinli" olmasına izin verilir.

Buna bakmanın bir başka yolu da, tarayıcıların geçerli bir özellik adı olarak ele alacağı karakterlerdir. En iyi tavsiye burada burada bulabilirsiniz HTML 5 çözümleyici spec gelmektedir: https://html.spec.whatwg.org/multipage/syntax.html#attributes-2

O diyor büyüktür işareti sekmesi, satır besleme, form besleme, uzay, solidus, tırnak işareti, kesme işareti dışındaki tüm karakterler ve eşittir işareti, özellik adının bir parçası olarak ele alınacaktır. Şahsen ben de bunun kenarlarını itmeye çalışmam.

+5

Soruma cevap ver. "hariç tüm karakterler ... özellik isminin bir parçası olarak ele alınacaktır" - Bu bilgiyi bulma konusunda Kudos, o kadar spesifik değil! –

+0

Evet "itme". Bazı oldukça yaygın karakterler CSS seçicilerinden kaçmak zorunda kalacaktır, diğerleri editörünüzün sözdizimi vurgularını vb. Kırmayacaktır. – Rolf

+16

Referans olarak, regex:/([^ \ t \ n \ f \ /> "'= ] +)/' – Nate

4

İzin verilen değerler w3.org adresinde listelenmiştir. Özel bir özellik eklerseniz, artık HTML yazmazsınız.

+0

Conclusive ile ilgili sorulan soru gibi görünüyor. Bu yüzden izin verilen tüm karakterler o belgede mevcut olanlardır. Teşekkürler! –

+2

Kendi 'data-' niteliklerinizi belirleyebileceğinizden dolayı bu tamamen doğru değil. – ioquatix

+1

@ioquatix - 2009 yılında doğruydu! Ve karışımdaki veri özellikleriyle bile, spesifikasyonda tanımlanan çok özel bir kişiselleştirme şeklidir. – Quentin

15

XHTML hakkında konuştuğunuzu varsayarsak, XML kuralları geçerlidir.

Belki bir şey eksik http://www.w3.org/TR/2008/REC-xml-20081126/#NT-Name

Adları ve Simgelerinizi

[4]  NameStartChar  ::=  ":" | [A-Z] | "_" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF] 
[4a] NameChar  ::=  NameStartChar | "-" | "." | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040] 
[5]  Name  ::=  NameStartChar (NameChar)* 
[6]  Names  ::=  Name (#x20 Name)* 
[7]  Nmtoken ::=  (NameChar)+ 
[8]  Nmtokens  ::=  Nmtoken (#x20 Nmtoken)* 
+0

imho, bu, kabul edilen – revelt

9

Bkz ama soru yanlış varsayıma dayanmaktadır inanıyoruz. HTML'de, özellikler, belirli bir belirtime göre kesinlikle defined'dur. Kendi öznitelik adlarınızı 'oluşturuyorsanız, artık geçerli HTML yazmıyorsunuz.

+33

yanıtı olmalıdır… özel 'data- *' öznitelikleri olmadıkça. –

+1

@MathiasBynens Cool, Henüz bunları bilmiyordum! Yine de, bunların yalnızca HTML5 için geçerli olduğunu unutmayın, HTML'nin herhangi bir önceki sürümü için geçerli değildir. – Daan

+1

Neden HTML5 kullanmıyorsunuz? –

İlgili konular