मुझे 'div' के बजाय 'li' का उपयोग क्यों करना चाहिए?


114

मुझे यकीन नहीं है कि मुझे आइटम सूचीबद्ध करते समय डिव का उपयोग करके उल-ली का उपयोग करने की आवश्यकता क्यों है। मैं दोनों को समान रूप से समान बना सकता हूं इसलिए एक अनियंत्रित सूची बनाम अस्तर अप बनाने के लिए कार्यात्मक लाभ कहां है?


1
शानदार सवाल। मैं कुछ समय से इसके लिए खोज कर रहा था। मुझे उम्मीद है कि नीचे कुछ उचित जवाब है।
रनियोस

जवाबों:


148

शब्दार्थ शुद्धता के लिए। HTML में चीजों की सूचियों को व्यक्त करने की क्षमता है, और यह Google रोबोट, स्क्रीन रीडर और उन सभी उपयोगकर्ताओं को मदद करता है जो साइट की प्रस्तुति के बारे में पूरी तरह से परवाह नहीं करते हैं, जो आपकी सामग्री को बेहतर ढंग से समझते हैं।


4
+1। नेत्रहीनों के लिए, यह सूची में क्या है और क्या नहीं है, यह भेद करने में मददगार हो सकता है। यदि आपके पास उदाहरण के लिए एक नुस्खा में सामग्री की सूची है, और उपयोगकर्ता निर्देशों को छोड़ना चाहता है या केवल सूची को पढ़ना चाहता है, तो आपको एक सूची की आवश्यकता है।
डेव मार्केले

+1। zsharp: आप स्वयं को "आइटम सूचीबद्ध करते समय" कहते हैं। सूची में जोड़ते समय आप चीजों को सूचीबद्ध करते हैं।
21:39

3
@Arve। मेरा नाम "सूची" नाम के बावजूद कार्यात्मक अंतर को प्राप्त करना था। Oteherwise मैं उन नियमों का पालन करूंगा जो मुझे समझ में नहीं आए।
zsharp

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

असल में @AwokeKnowing, सीएसएस रीसेट परियोजनाओं सेना हैं precicely क्योंकि पेशेवर सामने के अंत devs करते स्वरूपण बाहर शून्य करने के लिए कोड का एक समूह जोड़ना चाहते हैं। वे सभी ब्राउज़रों की डिफ़ॉल्ट शैलियों को एक ज्ञात, "स्टाइललेस", बेस पर "रीसेट" करते हैं।
joshperry

132

मुझे यकीन नहीं है कि मुझे आइटम सूचीबद्ध करते समय डिव का उपयोग करके उल-ली का उपयोग करने की आवश्यकता क्यों है। मैं दोनों को बिल्कुल एक जैसा बना सकता हूं

कि आपके प्रश्न में मुख्य शब्द है: "देखो"। क्या आप उन्हें ब्रेल रीडर का उपयोग करके नेत्रहीन लोगों के लिए भी टाइप कर सकते हैं ? क्या आप उन्हें टेक्स्ट-टू-स्पीच सिंथेसाइज़र का उपयोग करके नेत्रहीन लोगों के लिए ध्वनि बना सकते हैं ? क्या आप अभी भी कस्टम क्लाइंट-साइड सीएसएस उपयोगकर्ता-स्टाइलशीट का उपयोग करके नेत्रहीन लोगों के लिए उन्हें समान दिख सकते हैं ?

वह शब्द, "देखो", एक बहुत ही खतरनाक शब्द है - जब आप HTML के संबंध में इसका उपयोग करते हैं, तो सभी अलार्म आपके सिर में चले जाने चाहिए। HTML एक हाइपरमीडिया दस्तावेज़ की शब्दार्थ संरचना का वर्णन करने के लिए एक भाषा है। एक अर्थ संरचना नहीं है है एक "देखो" यह एक अमूर्त अवधारणा है,।

यहां तक ​​कि अगर आप इस सभी शब्दार्थ hocuspocus के बारे में परवाह नहीं करते हैं और आप अंधे लोगों की परवाह नहीं करते हैं, तो इस पर विचार करें: Google, याहू, एमएसएन और कंपनी की आंखें नहीं हैं, वे आपके प्रदान किए गए सीएसएस पर "नहीं" दिखते हैं ।


2
मैंने "लुक" शब्द का इस्तेमाल अंतर्निहित अंतर को प्राप्त करने के बिंदु पर जोर देने के लिए किया था। फिर भी आपके दर्शन की सराहना की जाती है।
zsharp

17

शब्दार्थ रूप से सही मार्कअप का उपयोग करके, आप अपने पाठ में अतिरिक्त जानकारी एम्बेड कर रहे हैं। उल / ली का उपयोग करके आप उपभोग करने वाले एप्लिकेशन को सूचित कर रहे हैं कि जानकारी एक सूची है, और न केवल "कुछ" (जो जानता है) कि एक मनमाना तत्व के अंदर कुछ पाठ है।


15

आपके प्रश्न का सीधा उत्तर: कार्यात्मक लाभ यह है कि डिव का मतलब अपने आप से कम होता है, जबकि उल लिस का स्पष्ट अर्थ है "यह एक संयुक्त राष्ट्र की / आदेशित सूची है।"

शब्द "शब्दार्थ" इस तरह से संदर्भित है कि आप स्पष्ट अर्थ बनाने के लिए मौजूदा संरचनाओं के निहित अर्थ का उपयोग करते हैं। HTML में ऐसे टैग शामिल होते हैं, जो कुछ चीजों का मतलब खुद से समझते हैं। और उन्हें उपयोग करने के लिए स्थापित नियम / दिशानिर्देश / तरीके हैं ताकि आपका प्रकाशित HTML दस्तावेज़ यह बताए कि आप इसका क्या मतलब चाहते हैं।

यदि आप अपने दस्तावेज़ में कुछ सूचीबद्ध करते हैं, तो एक आदेशित सूची (यूएल) या एक अनियंत्रित सूची (ओएल) जोड़ें। दूसरी ओर, पृष्ठ विभाजन (DIV) तत्व का उपयोग सामग्री के एक विशिष्ट और अलग टुकड़े को बनाने के लिए किया जाता है।

Div तत्व "बंटा होता है।" जब आप किसी पृष्ठ को देखते हैं, तो सामग्री निकाय, पाद लेख, शीर्ष लेख, नेविगेशन, मेनू, फ़ॉर्म आदि जैसे विशिष्ट भाग होते हैं और आप इन विभाजनों को बनाने के लिए div टैग का उपयोग कर सकते हैं । अक्सर, पृष्ठ भाग एक दृश्य लेआउट के साथ मेल खाता है, इसलिए सीएसएस में अपने लेआउट को काटने के लिए स्पष्ट पृष्ठ विभाजन (DIV) का उपयोग करना एक प्राकृतिक फिट है। इस तरह div टैग संरचनात्मक हो जाते हैं।

यदि आप div टैग का दुरुपयोग करते हैं या उसका उपयोग करते हैं , तो यह अनपेक्षित अर्थ और कोड ब्लोट बना सकता है।

मामलों को भ्रमित करने के लिए: Google अपने सूचीबद्ध खोज परिणामों को "विभाजित" करने के लिए h3 और div का उपयोग करता है । ul> li> h3 + div

इसलिए जब आप फ़ायरफ़ॉक्स w / WebDeveloper टूलबार में सभी शैलियों (Shift + Cmd / Crtl + S) को बंद कर देते हैं, तो divs को दूर जाना चाहिए, और स्वाभाविक रूप से स्टैक करना चाहिए। आपके नग्न HTML को अभी भी एक स्पष्ट पदानुक्रम के साथ एक अच्छा पृष्ठ प्रस्तुत करना चाहिए: ऊपर से नीचे, सबसे महत्वपूर्ण सामग्री पहले, और सूचीबद्ध वस्तुओं के लिए गोलियों और संख्याओं के साथ सूची। और यह शीर्ष (गैर-दृश्य उपयोगकर्ताओं के लिए) के पास एक लिंक जोड़ने के लिए एक अच्छा विचार है जो आपको नीचे छोड़ने की अनुमति देता है: मुख्य सामग्री, महत्वपूर्ण रूप या मुख्य शीर्षक (जैसे सामग्री की तालिका)।

अंत में, ध्यान रखें कि आप एक दस्तावेज़ बना रहे हैं। सभी दृश्य प्रभावों के बिना, यह अभी भी एक अस्पष्ट दस्तावेज होना चाहिए।


6

उपयोग करने <li>या उपयोग करने के बारे में बहुत सारी बातें हैं, <div>लेकिन किसी एक टिप्पणी ने उस सामग्री का ठोस उदाहरण नहीं दिया है जो इन टैगों के अंदर जाती है। मेरे भावना है कि <ul>और <li>वास्तव में महत्वपूर्ण है कि जैसा कि मैंने आपको पिछली बार नहीं बता सकता कि मैं वास्तव में एक वेबसाइट, समाचार पत्र या पत्रिका पर एक चीजों की "सूची" पढ़ा नहीं कर रहे हैं - ऑनलाइन या प्रिंट में।

<div>बहुत अधिक बहुमुखी है। यदि आप एक केक के लिए सामग्री को सूचीबद्ध कर रहे हैं, तो हाँ यह एक सूची है। यदि आप लंबी पैदल यात्रा के लिए पैक करने के लिए चीजों को सूचीबद्ध कर रहे हैं, तो हाँ यह एक सूची है।

लेकिन उदाहरण के लिए, एक उपयोगकर्ता-रूप के बारे में क्या है, जो कुछ यादृच्छिक चीजों को सूचीबद्ध करता है जो वास्तव में एक सूची नहीं है, न ही पैराग्राफ की एक श्रृंखला है, न ही सभी "हेडर।" कुछ चीजें दिनांक हैं, कुछ चेकबॉक्स हैं और कुछ पाठ हैं। आप मुझसे पूछें, तो इसे विभाजित करें। एक अंधे व्यक्ति होगा गलत सूचित अगर यह के साथ चिह्नित किया गया था <ul>और <li>और वे सुना "यहाँ का ... एक सूची है" यह सामान का सिर्फ एक कमेरा podge, नहीं वास्तव में एक सूची है जब।


क्या नेविगेशन मेनू को उन पृष्ठों की एक सूची नहीं माना जाएगा, जिन्हें वे देख सकते हैं, खासकर यदि कोई पदानुक्रम है?
स्कॉट एम। स्टोलज़

4

आपको उस सामग्री के लिए उपयुक्त टैग का उपयोग करना चाहिए जिसे आप अंदर रखना चाहते हैं। इसका मतलब यह नहीं है कि उल / ली सूचियों के लिए अधिक उपयुक्त है। इसका मतलब यह भी है कि आपको अपनी सूची की सामग्री पर विचार करना होगा और यह देखना होगा कि इसकी अनियोजित / आदेशित या परिभाषा सूची है या नहीं।

एक और तर्क यह है कि जब आप सीएसएस को अक्षम करते हैं। ब्राउज़र इसे डिफ़ॉल्ट स्टाइलिंग प्रदान करेगा जो वैकल्पिक ब्राउज़िंग उपकरणों का उपयोग करने पर यह देखने के लिए अच्छा बनाता है। यह accesibility भी बढ़ाता है।


4

यदि आप इसके बजाय div का उपयोग करते हैं, तो lynx एक पठनीय शैली में पृष्ठ को प्रस्तुत करने में सक्षम नहीं होगा।


3

मुझे निजी तौर पर शब्दार्थ के लिए ली पसंद है। स्रोत को देखते समय आप तुरंत देखते हैं कि आपके पास किसी चीज़ की सूची है यदि वे एक ली द्वारा लिपटे हैं। एक div संग्रह कोई अर्थपूर्ण अर्थ प्रदान नहीं करता है, और आमतौर पर सूची के केवल शब्दार्थ "cItItem" जैसे सीएसएस वर्गों द्वारा पेश किए जाते हैं। जो स्पष्ट रूप से इस तथ्य की ओर इशारा करता है कि पहली जगह में एक ली का उपयोग किया जाना चाहिए था।

यदि आपके पास अपनी प्रस्तुति तर्क में एक लूप है, तो मैं हमेशा एक div पर एक ली का पक्ष लेता हूं।


4
मैं सहमत हूँ। मैंने वास्तव में <div class = "ul"> <div class = "li"> ... </ div> </ div> एक बार और सबसे सुसंगत सोचा कि मैं जुटा सकता था "WTF ?? !! ??" !?! "
जोर्ग डब्ल्यू मित्तग

3

<li> का अर्थ किसी सूची में एक आइटम है और जो पार्सर्स (ब्राउज़र, खोज इंजन, मकड़ियों) को यह बताता है कि आप आइटम सूचीबद्ध कर रहे हैं। आप LI के बजाय DIV का उपयोग कर सकते हैं, लेकिन उन पार्सर को कभी पता नहीं चलेगा कि उन वस्तुओं को सूचीबद्ध किया जा रहा है और DIV वास्तव में किसी भी चीज का वर्णन नहीं करता है सिवाय इसके कि यह एक ब्लॉक है।


3

यह प्रोजेक्ट पर निर्भर करता है। मैंने हाल ही में एक प्रोजेक्ट किया था जिसमें एक सूची का उपयोग करके एक मेनू बनाया गया था। वे फिसलने / लुप्त होने जैसे प्रभावों का एक गुच्छा जोड़ना चाहते थे, और इसे कई स्तरों के साथ ढहना चाहते थे।

इस मामले में, DIV अधिक उपयुक्त थे। मैं वांछित प्रभावों को प्राप्त करने के लिए बाल विभाग के लिए कंटेनर बनाने और jQuery लागू करने में सक्षम था।

यहां तक ​​कि अगर आपके प्रोजेक्ट में अभी तक ये आवश्यकताएं नहीं हैं, तो यह सोचना विवेकपूर्ण हो सकता है कि आप इसे भविष्य में कैसे बदल सकते हैं ...


2

उपयोग करना <li>(जहाँ उपयुक्त हो) <div>आपके द्वारा सोचे जा रहे सूप को अक्सर वेब पेजों में देखा जाता है, जो डेवलपर्स को बहुत मदद करता है।

ऐसा नहीं है कि <div>बुरे हैं, लेकिन जब भी कोई टैग अति हो जाता है (जैसा कि <div>अक्सर होता है), यह टैग के अर्थ को पूरी तरह से बेकार होने के बिंदु तक फैला देता है। मैंने हाल ही में अपने वेब ऐप के सीएसएस / यूआई के साथ मदद करने के लिए काम पर रखे गए एक ठेकेदार से यह सीखा, और HTML कोड की पठनीयता / स्थिरता के लिए यह अंतर मेरे लिए बहुत ही ध्यान देने योग्य है।


2

यदि आप सभी परवाह करते हैं कि न्यूनतम प्रयास के साथ एक निश्चित तरीके से देखने के लिए सूचियां मिल रही हैं, तो यह पहले से ही एक नो-ब्रेनर है: <li>टाइप करने के लिए कम वर्ण है <div> और इसका समापन टैग HTML में वैकल्पिक है।

और इसके अलावा जो शब्दार्थ के बारे में बाकी सभी ने कहा है।


2

आदिम ब्राउज़रों या मोबाइल उपकरणों पर ठीक से प्रतिपादन के लिए


2

आपके प्रश्न का उत्तर पहले से ही है, मैं यहाँ अपने दो सेंट जोड़ना चाहता हूँ। मैं एक प्रोजेक्ट पर काम कर रहा था, जहां मैं बैकएंड लॉजिक कर रहा था और मेरे डेटा को मेरे डिजाइनर द्वारा बनाए गए पेज टेम्पलेट में एकत्र किया जा रहा था। उन्होंने पृष्ठ पर हर तरह की सूची का प्रतिनिधित्व करने के लिए उल और टैग का उपयोग किया, जिनमें से कुछ विजेट थे। डेटा एक सेमी से आ रहा था जहां उपयोगकर्ता html टैग के माध्यम से समृद्ध पाठ दर्ज कर सकते थे। जब उपयोगकर्ताओं ने अपनी सामग्री में सूचियाँ बनाना शुरू किया तो सूचियाँ अब बुलेटेड सूचियों की तरह नहीं दिखती थीं बल्कि पूरे पृष्ठ को खराब कर देती थीं।

सबक सीखा: जेनेरिक सीएसएस चयनकर्ताओं के साथ सूची टैग का उपयोग न करें यदि आपकी सामग्री स्वयं में HTML हो सकती है।


0

उल ली के बारे में एक और बात है; आप एक कंटेनर के रूप में उल का उपयोग कर सकते हैं जो आपको स्टाइल क्लास सेट करने में मदद करता है

<ul class="myHebe">
  <li><a href="#">.net</a></li>
  <li><a href="#">.net</a></li>
</ul>

मैं इस पैटर्न को पसंद करता हूं जब मैं उल का उपयोग करता हूं

.myHebe{} // container
.myHebe li {} // items
.myHebe li a {} // subitems

बेशक यह इस बात पर निर्भर करता है कि हम इसका उपयोग कैसे करना चाहते हैं और हम इसे कैसे पसंद करते हैं। यह तरीका मुझे पसंद है

आशा है कि धन्यवाद मदद करता है


3
div को कंटेनर के रूप में भी इस्तेमाल किया जा सकता है
Janning

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