HTML id के लिए एक व्यावहारिक अधिकतम लंबाई क्या है?


88

एचटीएमएल कल्पना का कहना है

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

और भले ही HTML 4 का SGML घोषणा NAMELEN के लिए 65536 मान का उपयोग करता है, यह नोट करता है "निश्चित सीमा से बचें।"

लेकिन निश्चित रूप से ब्राउज़रों, सीएसएस कार्यान्वयन और जावास्क्रिप्ट टूलकिट की लंबाई का कुछ सीमा होनी चाहिए जो वे समर्थन करते हैं। HTML / CSS / JS एप्लिकेशन में उपयोग करने के लिए सुरक्षित सबसे छोटी ऐसी सीमा क्या है?


3
ID को एक अक्षर से शुरू करने के लिए धन्यवाद और +1 करने के लिए धन्यवाद। मैंने पिछले अंक में '1', '2', '3', '4', '5' जैसी आईडी का उपयोग किया है। मैं सर्वेक्षण संबंधित विगेट्स और इंटरेक्टिव तत्वों का एक बहुत कुछ करता हूं और इस तरह से आईडीएस का उपयोग करके एक सुविधाजनक 'स्कोर' विशेषता के साथ-साथ आईडी संदर्भ भी बनाता हूं। आज मैं कुछ सीएसएस काम करने की कोशिश कर रहा था जो वास्तव में काम करना चाहिए था। मैं भी इसे W3C सत्यापनकर्ता के पिछले भाग गया और इसने मुझे इस मुद्दे पर सचेत नहीं किया ... लेकिन इस पोस्ट ने किया। और अब जब मैंने id = '5' को 'x5x' में बदल दिया तो css काम करता है ... अब मुझे सिर्फ x के स्ट्रिप करने के लिए स्कोरिंग सबरूटीन को बदलना है! Thx फिर से।
बेन ए। हिलेली

जवाबों:


216

बस परीक्षण किया गया: प्रत्येक आधुनिक ब्राउज़र पर 1M वर्ण काम करता है: Chrome1, FF3, IE7, Konqueror3, Opera9, Safari3।

मुझे संदेह है कि अब आईडी को भी याद रखना मुश्किल हो सकता है।


15
इस आदमी ने 10 "मिलियन" किरदार किए हैं! stackoverflow.com/a/1496150/74585
मैथ्यू लॉक

1
मुझे माफ कर दो। 1M? 1 मिलियन में?
बेलिहा

8
@phihag जब मैंने टोरंटो में सीएस का अध्ययन किया, और प्रशिक्षक ने चुटकी ली कि "निश्चित रूप से हर कोई जानता है कि 1582 के अक्टूबर में ग्रेगोरियन कैलेंडर में 10 दिन क्यों गायब हैं", मुझे एक सहकर्मी से पूछना था, जिसने मुझे निष्ठापूर्वक देखा और कहा " ग्रेगोरियन कैलेंडर को अपनाने के कारण, क्या, आप कभी प्राथमिक विद्यालय नहीं गए? " मैं नहीं था। कनाडा में नहीं। मैं मिस्र के प्राथमिक विद्यालय में गया, और इसके बजाय इस्लामी कैलेंडर के बारे में सीखा। एसआई उपसर्गों के साथ एक ही बात: आपको पश्चिमी शिक्षा का लाभ हो सकता है, मैंने नहीं किया। लेकिन फिर भी कृपालु रवैये के लिए धन्यवाद।
बेलिहा

2
@ बेलीहा सुंदर को यकीन है कि कम से कम यहां पुर्तगाल में मैंने कभी नहीं सुना कि ग्रेगोरियन कैलेंडर में 1582 के अक्टूबर में 10 दिन गायब हैं, और मैं अनुमान लगा रहा हूं कि मैं अकेला नहीं हूं। मुझे नहीं लगता कि स्कूल ने कभी भी यह सिखाया है कि जो मैं याद रख सकता हूं, वह किसी के लिए भी बोल्ड होगा ताकि सभी को यह पता चले।
user7393973

1
@ बेलिहा मैं पश्चिमी स्कूल में गया और यह भी नहीं सीखा कि हम ग्रेगोरियन कैलेंडर का उपयोग करते हैं (कम से कम इस नाम से नहीं), हमने बस स्टैण्डर्ड कैलेंडर शब्द का इस्तेमाल किया है। और इस 10 गुम दिनों के बारे में, मैंने इसे youtube से सीखा।
तिनैरा

15

मेरे लिए एक व्यावहारिक सीमा, हालांकि मैं उस समय अपने सिर में स्टोर कर सकता हूं जब मैं एचटीएमएल / सीएसएस के साथ काम कर रहा हूं।

यह सीमा आमतौर पर 8 और 13 वर्णों के बीच होती है, यह इस बात पर निर्भर करता है कि मैं कितने समय से काम कर रहा हूं और यदि नाम तत्व के संदर्भ में समझ में आता है।


5
मुझे लगता है कि यदि आवश्यक हो तो उपसर्गों का उपयोग करके किसी के "आंतरिक बफर" का विस्तार करना संभव हो सकता है। :-)
बेन ब्लैंक

12
यह प्रश्न अभी भी बहुत महत्वपूर्ण है, क्योंकि आरआईए के साथ, अक्सर बार आईडी कोड द्वारा उत्पन्न होते हैं, और अद्वितीय होने के लिए, लंबे समय तक हो सकते हैं; एक उदाहरण के रूप में: window_2_panel_12_group_6_label_2 _...
जोश

3

कभी-कभी मैं बहुत लंबी आईडी के साथ समाप्त हो जाऊंगा, लेकिन मैं उन्हें उनके सटीक उद्देश्य से मिलान करने के लिए लगातार नाम देता हूं।

उदाहरण के लिए...

<div id="page">
    <div id="primary-content"></div>
    <div id="secondary-content"></div>
    <div id="search-form-and-primary-nav-wrapper">
        <form id="search-form"></form>
        <ul id="primary-nav">
            <li id="primary-nav-about-us"></li>
        </ul>
    </div>
    <a id="logo"><img /></a>
</div><!-- /#page -->

जैसा कि आप देख सकते हैं, चयनकर्ता कभी-कभी बहुत लंबे होते हैं। लेकिन यह YUI grids.css की तरह कुछ के साथ काम करने की तुलना में IMHO बहुत आसान है, जहां आप #doc, #bd, # yui-main, आदि जैसे आईडी के साथ समाप्त होते हैं।


3
जो मैं बहुत कुछ करता हूं, उसका नाम हीरा है, इसलिए एक div id = 'user' है, तो उसके भीतर मेरे पास तीन div हो सकते हैं, id = 'उपयोगकर्ता-आँकड़े', आईडी = 'उपयोगकर्ता-सूची', आईडी = 'उपयोगकर्ता- मंत्र ', फिर उपयोगकर्ता-आँकड़ों के भीतर कह सकते हैं कि मेरे पास 5 div, id =' उपयोगकर्ता-आँकड़े-शक्ति ', id =' उपयोगकर्ता-आँकड़े-चपलता ', id =' उपयोगकर्ता-आँकड़े-रक्षा ', id =' उपयोगकर्ता- आँकड़े-बुद्धि ', आईडी =' उपयोगकर्ता-आँकड़े-हीथ 'आदि आदि, जो मुझे उनकी आईडी को याद रखने के लिए बहुत उपयोगी लगते हैं, जब तक कि मैं नामकरण सम्मेलनों को बनाए रखता हूँ, यानी या-या रिक्त स्थान या कैमल कैस के लिए।
Psytronic

2

यदि यह एक अकादमिक प्रश्न है, तो यह काफी दिलचस्प है ... लेकिन जहाँ तक सर्वोत्तम प्रथाओं का सवाल है, आपको इन पर कोई असर नहीं पड़ना चाहिए - या बाहर निकालना चाहिए। यदि आपको HTML तत्व के बारे में डेटा संग्रहीत करने की आवश्यकता है, तो इसे DOM ऑब्जेक्ट पर विशेषता में रखना बेहतर है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.