tutorial - uses of html




HTML में आईडी विशेषता के लिए वैध मान क्या हैं? (14)

एचटीएमएल 5

ध्यान में रखते हुए कि आईडी अद्वितीय होना चाहिए, यानी। ऐसे दस्तावेज़ में एकाधिक तत्व नहीं होने चाहिए जिनमें एक ही आईडी मान हो।

एचटीएमएल 5 में आईडी सामग्री के नियम हैं (अद्वितीय होने के अलावा):

This attribute's value must not contain white spaces. [...] 
Though this restriction has been lifted in HTML 5, 
an ID should start with a letter for compatibility.

आईडी के बारे में यह W3 spec है (från MDN):

Any string, with the following restrictions:
must be at least one character long
must not contain any space characters
Previous versions of HTML placed greater restrictions on the content of ID values 
(for example, they did not permit ID values to begin with a number).

और जानकारी:

HTML तत्वों के लिए id विशेषताएँ बनाते समय, मूल्य के लिए कौन से नियम हैं?


एचटीएमएल 5:

यहां आईडी विशेषता पर अतिरिक्त प्रतिबंधों से छुटकारा पाता है । केवल एक ही आवश्यकता है (दस्तावेज़ में अद्वितीय होने के अलावा) हैं:

  1. मान में कम से कम एक वर्ण होना चाहिए (खाली नहीं हो सकता है)
  2. इसमें कोई स्पेस वर्ण नहीं हो सकता है।

पूर्व एचटीएमएल 5:

आईडी मेल खाना चाहिए:

[A-Za-z][-A-Za-z0-9_:.]*
  1. एजेड या एजे अक्षर के साथ शुरू होना चाहिए
  2. हो सकता है - (हाइफ़न), _ (अंडरस्कोर) : (कोलन) और . (अवधि)

लेकिन एक से बचना चाहिए : और . beacause:

उदाहरण के लिए, एक आईडी को "ab: c" लेबल किया जा सकता है और स्टाइल शीट में #ab: c के रूप में संदर्भित किया जा सकता है लेकिन साथ ही तत्व के लिए आईडी होने के कारण, इसका अर्थ आईडी "ए", कक्षा "बी", छद्म- चयनकर्ता "सी"। भ्रम से बचने और उपयोग करने से दूर रहने के लिए सर्वश्रेष्ठ। और: पूरी तरह से।


  1. आईडी आपके लेआउट के कुछ हिस्सों के नामकरण के लिए सबसे उपयुक्त हैं इसलिए आईडी और कक्षा के लिए समान नाम नहीं देना चाहिए
  2. आईडी अल्फान्यूमेरिक और विशेष पात्रों की अनुमति देता है
  3. लेकिन # : . * ! का उपयोग करने से बचें # : . * ! # : . * ! प्रतीकों
  4. रिक्त स्थान की अनुमति नहीं है
  5. संख्याओं या एक हाइफ़न के साथ एक अंक के बाद शुरू नहीं हुआ
  6. अक्षर संवेदनशील
  7. आईडी चयनकर्ताओं का उपयोग कक्षा चयनकर्ताओं का उपयोग करने से तेज है
  8. लंबी सीएसएस कक्षा या आईडी नियम नामों के लिए हाइफ़न का उपयोग करें "-" (अंडरस्कोर "_" भी उपयोग कर सकता है लेकिन एसईओ के लिए अच्छा नहीं है)
  9. यदि किसी नियम में आईडी चयनकर्ता का मुख्य चयनकर्ता होता है, तो नियम में टैग का नाम न जोड़ें। चूंकि आईडी अद्वितीय हैं, इसलिए टैग नाम जोड़ना मिलान प्रक्रिया को धीमा कर देगा।
  10. एचटीएमएल 5 में, आईडी विशेषता का उपयोग किसी भी HTML तत्व और HTML 4.01 में किया जा सकता है, आईडी विशेषता का उपयोग इस प्रकार नहीं किया जा सकता है: <base>, <head>, <html>, <meta>, <param>, <script>, <style>, and <title>.

jQuery किसी वैध आईडी नाम को संभालता है। आपको बस मेटाएक्टैक्टर्स से बचने की जरूरत है (यानी, डॉट्स, अर्धविराम, स्क्वायर ब्रैकेट ...)। ऐसा कहने की तरह है कि जावास्क्रिप्ट को केवल उद्धरणों के साथ समस्या है क्योंकि आप लिख नहीं सकते हैं

var name = 'O'Hara';

JQuery एपीआई में चयनकर्ता (नीचे नोट देखें)


आप तकनीकी रूप से आईडी / नाम विशेषताओं में कोलन और अवधि का उपयोग कर सकते हैं, लेकिन मैं दृढ़ता से दोनों से बचने का सुझाव दूंगा।

सीएसएस (और jQuery जैसी कई जावास्क्रिप्ट पुस्तकालयों) में, अवधि और कोलन दोनों का विशेष अर्थ होता है और यदि आप सावधान नहीं हैं तो आप समस्याओं में भाग लेंगे। अवधि कक्षा चयनकर्ता हैं और कोलन छद्म चयनकर्ता हैं (उदाहरण के लिए, माउस पर होने पर तत्व के लिए "होवर")।

यदि आप एक तत्व "my.cool:thing" आईडी देते हैं, तो आपका सीएसएस चयनकर्ता इस तरह दिखेगा:

#my.cool:thing { ... /* some rules */ ... }

जो वास्तव में कह रहा है, "सीएसएस में 'मेरी' आईडी, 'कूल' और 'चीज' छद्म चयनकर्ता 'की एक कक्षा के साथ तत्व।

किसी भी मामले, संख्याओं, अंडरस्कोर और हाइफ़न के एजेड पर चिपकाएं। और ऊपर बताए अनुसार, सुनिश्चित करें कि आपकी आईडी अद्वितीय हैं।

यह आपकी पहली चिंता होनी चाहिए।


एचटीएमएल 4 spec से ...

आईडी और NAME टोकन को एक अक्षर ([ए-ज़ा-जेड] से शुरू होना चाहिए) और उसके बाद किसी भी संख्या, अक्षरों ([0-9]), हाइफ़न ("-"), अंडरस्कोर ("_") के बाद हो सकता है , कोलन (":"), और अवधि ("।")।

संपादित करें: ओह! बटन को फिर से मारो!


ऐसा प्रतीत होता है कि यद्यपि कॉलन (:) और अवधि (।) HTML spec में मान्य हैं, इसलिए वे CSS में आईडी चयनकर्ताओं के रूप में अमान्य हैं, इसलिए यदि आप उस उद्देश्य के लिए उनका उपयोग करना चाहते हैं तो शायद सबसे अच्छा बचा है।


कड़ाई से यह मेल खाना चाहिए

[A-Za-z][-A-Za-z0-9_:.]*

लेकिन jquery को कोलों के साथ समस्याएं प्रतीत होती हैं, इसलिए इससे बचने के लिए बेहतर हो सकता है।


कोई भी अल्फा-न्यूमेरिक मान और " - " और " _ " मान्य है। लेकिन, आपको एडी या एज़ के बीच किसी भी चरित्र के साथ आईडी नाम शुरू करना चाहिए।


कोई रिक्त स्थान, कम से कम एक char से z और 0 से 9 तक शुरू होना चाहिए।


व्यावहारिक रूप से कई साइटें संख्याओं से शुरू होने वाली id विशेषताओं का उपयोग करती हैं, भले ही यह तकनीकी रूप से मान्य HTML नहीं है।

एचटीएमएल 5 मसौदा विनिर्देश id और name विशेषताओं के नियमों को कम करता है: वे अब केवल अपारदर्शी तार हैं जिनमें रिक्त स्थान नहीं हो सकते हैं।


साथ ही, कभी भी यह न भूलें कि एक आईडी अद्वितीय है। एक बार उपयोग किए जाने पर, आईडी मान दस्तावेज़ में कहीं भी दिखाई नहीं दे सकता है।

आपके पास कई आईडी हो सकती हैं, लेकिन सभी के पास एक अद्वितीय मूल्य होना चाहिए।

दूसरी ओर, कक्षा-तत्व है। आईडी की तरह, यह कई बार प्रदर्शित हो सकता है, लेकिन मूल्य बार-बार उपयोग किया जा सकता है।


एचटीएमएल 4 के लिए , जवाब तकनीकी रूप से है:

आईडी और NAME टोकन को एक अक्षर ([ए-ज़ा-जेड] से शुरू होना चाहिए) और उसके बाद किसी भी संख्या, अक्षरों ([0-9]), हाइफ़न ("-"), अंडरस्कोर ("_") के बाद हो सकता है , कोलन (":"), और अवधि ("।")।

एचटीएमएल 5 और भी अनुमोदित है, केवल यह कह रहा है कि एक आईडी में कम से कम एक वर्ण होना चाहिए और इसमें कोई भी स्पेस वर्ण नहीं हो सकता है।

आईडी विशेषता XHTML में संवेदनशील है।

पूरी तरह से व्यावहारिक मामले के रूप में, आप कुछ पात्रों से बचना चाह सकते हैं। अवधि, कॉलन और '#' का सीएसएस चयनकर्ताओं में विशेष अर्थ है, इसलिए आपको उन वर्णों से बचने के लिए सीएसएस में बैकस्लैश का उपयोग करना होगा या jQuery को पास किए गए चयनकर्ता स्ट्रिंग में डबल बैकस्लैश करना होगा । इस अवधि के बारे में सोचें कि आप अपनी स्टाइलशीट्स या कोड में किसी चरित्र से बचने से पहले कितनी बार आईड्स में अवधि और कॉलन के साथ पागल हो जाते हैं।

उदाहरण के लिए, एचटीएमएल घोषणा <div id="first.name"></div> मान्य है। आप उस तत्व को सीएसएस में #first\.name और jQuery में इस तरह चुन सकते हैं: $('#first\\.name'). #first\.name $('#first\\.name'). लेकिन अगर आप बैकस्लैश, $('#first.name') भूल जाते हैं, तो आपके पास first आईडी के साथ तत्व की तलाश करने और कक्षा का name रखने वाला एक बिल्कुल वैध चयनकर्ता होगा। यह एक बग है जिसे अनदेखा करना आसान है। आप लंबे समय तक आईडी के first-name (एक अवधि के बजाय एक हाइफ़न) चुनने में लंबे समय तक खुश रह सकते हैं।

आप नामकरण सम्मेलन में सख्ती से चिपके हुए अपने विकास कार्यों को सरल बना सकते हैं। उदाहरण के लिए, यदि आप पूरी तरह से निचले-केस वर्णों तक सीमित हैं और हमेशा हाइफ़न या अंडरस्कोर वाले शब्दों को अलग करते हैं (लेकिन दोनों नहीं, एक चुनें और कभी भी दूसरे का उपयोग न करें), तो आपके पास एक याद रखने योग्य पैटर्न है। आप कभी आश्चर्य नहीं करेंगे "क्या यह firstName था या FirstName ?" क्योंकि आप हमेशा जानते होंगे कि आपको first_name टाइप करना चाहिए। ऊंट के मामले को पसंद करते हैं? फिर अपने आप को सीमित करें, कोई हाइफ़न या अंडरस्कोर नहीं, और हमेशा, पहले वर्ण के लिए लगातार ऊपरी-केस या लोअर-केस का उपयोग करें, उन्हें मिश्रण न करें।

अब एक बहुत ही अस्पष्ट समस्या यह थी कि कम से कम एक ब्राउज़र, नेटस्केप 6, गलत रूप से आईडी विशेषता मानों को केस-संवेदी के रूप में मानता था । इसका मतलब था कि अगर आपने अपने सीएसएस ( #FirstName { color: red } -केस 'एफ') में अपने एचटीएमएल (लोअर-केस 'एफ') और #FirstName { color: red } में id="firstName" टाइप किया था, तो उस छोटी गाड़ी ब्राउज़र में असफल रहा होगा तत्व का रंग लाल रंग में सेट करें। इस संपादन के समय, अप्रैल 2015, मुझे आशा है कि आपको नेटस्केप 6 का समर्थन करने के लिए कहा नहीं जा रहा है। इस पर एक ऐतिहासिक फुटनोट पर विचार करें।


एचटीएमएल 4 विनिर्देश से :

आईडी और NAME टोकन को एक अक्षर ([ए-ज़ा-जेड] से शुरू होना चाहिए) और उसके बाद किसी भी संख्या, अक्षरों ([0-9]), हाइफ़न ("-"), अंडरस्कोर ("_") के बाद हो सकता है , कोलन (":"), और अवधि ("।")।

एक सामान्य गलती एक आईडी का उपयोग करना है जो अंकों से शुरू होती है।





html