2010-07-07 7 views
10

में अनुच्छेदों में नेस्ट सूचियां ऐसा लगता है कि (सख्त) एचटीएमएल <p> के अंदर किसी भी गैर-इनलाइन तत्वों को घोंसले की अनुमति नहीं देता है, लेकिन फिर मुझे एक पैराग्राफ प्रस्तुत करना होगा जिसमें एक सूची है (जो कुछ अक्सर होता है प्राकृतिक ग्रंथ)। मैंने तीन उत्तरों को देखा है जो सभी असंतुष्ट लगते हैं:एचटीएमएल

  • सूची पैराग्राफ के अंदर नहीं होनी चाहिए। (मैं एक सांस्कृतिक बहस में नहीं जा रहा हूं, लेकिन मुझे उम्मीद है कि एचटीएमएल लेखन शैली को निर्देशित करने वाला स्थान नहीं बन जाएगा।)
  • पाठ को अनुच्छेद में विभाजित करें, फिर एक सूची, और फिर एक सेकंड पोस्ट-टेक्स्ट के साथ अनुच्छेद। यह बुरा लगता है क्योंकि अब मेरे पास भाग हैं जो पैराग्राफ के भागों हैं, और यह एक मार्कअप के लिए बुरा लगता है जो अधिक अर्थपूर्ण दिशा में स्थानांतरित करने की कोशिश कर रहा है।
  • कुछ <div class="mypara"> का उपयोग करके नकली पैराग्राफ - जो पूरी चीज को बाईपास करने और टेक्स्ट के लिए उचित अर्थशास्त्र के साथ मार्कअप का उपयोग करने का एक बुरा तरीका दिखता है।

क्या ऐसा करने का कोई और तरीका है जो अर्थात् सही और वैध है?

+0

आम काम उनका कहना है के लिए +1 इस मुद्दे के लिए चारों ओर। समस्या तब भी अधिक दिखाई देती है, जब आप अपनी संरचना पर जोर देने के लिए वाक्य के मध्य में एक सूची का उपयोग करते हैं, क्योंकि अलग-अलग अनुच्छेदों में एक वाक्य को विभाजित करना निश्चित रूप से अर्थपूर्ण रूप से गलत है। ई जी "मैं [सूची] खरीदना चाहता हूं • दूध, • चीनी, • ऐप्पल, और • एक वायोला [/ सूची] आज।" आमतौर पर टीएक्स के साथ टेक्स्ट टाइप करते समय इसका उपयोग किया जाता है। – Palec

उत्तर

9

नवीनतम वर्किंग ड्राफ्ट के रूप में एचटीएमएल 5 में पैराग्राफ को फ्लो तत्वों के रूप में परिभाषित किया गया है जिनमें केवल वाक्यांश तत्व शामिल हो सकते हैं। सूची को प्रवाह तत्वों के रूप में भी परिभाषित किया जाता है, और अनुच्छेदों में संलग्न नहीं किया जा सकता है। जो कुछ भी आपको लगता है कि अनुच्छेद की परिभाषा होनी चाहिए, यह HTML में शब्द की औपचारिक परिभाषा है, और मुझे लगता है कि यह बदलने की संभावना नहीं है।

दो संभावनाएं है कि आप दो के अलावा विचार कर सकते हैं आप उल्लेख किया है के होते हैं:,

  • पैरा अगर यह लागू होता है की अपेक्षा अधिक व्यापक तक पहुँचने प्रवाह तत्व के लिए तक पहुँचने पर विचार करें जैसे section, nav, header, footer, या article
  • एक संकर दृष्टिकोण का उपयोग करें: p – ol – p अनुक्रम को अपने चयन के div के साथ लपेटें जो सेट पर सामान्य स्वरूपण लागू करता है।

जहाँ तक div जाता है, एचटीएमएल 5 कल्पना स्पष्ट रूप से सिफारिश की है कि यह है क्योंकि यह तरीका है कि अन्य HTML तत्वों कर में अर्थ अर्थ वहन नहीं करती एक तत्व "अंतिम उपाय" होना चाहिए, और के रूप में नहीं किया जा सकता वैकल्पिक उपयोगकर्ता एजेंटों में उपयोगकर्ता के अनुकूल। इस सलाह के अनुसार, यदि 0 सेमेन्टिक्स आपके लिए महत्वपूर्ण हैं तो मैं p की लागत पर div का उपयोग नहीं कर सकता। हालांकि, यह सुनिश्चित करने में उपयोगी हो सकता है कि एकाधिक अनुच्छेदों का उपयोग बहुत दृष्टिहीन नहीं होता है।

+0

जिस स्थिति का सामना करना पड़ रहा है वह HTML उत्पन्न करने के लिए एक प्रणाली है, और ऐसा लगता है कि इस मामले में सबसे अच्छा विकल्प 'div' का उपयोग करना है। इसके अलावा, व्यापक टैग का उपयोग करने का सुझाव भी एक अच्छा विचार लगता है। – Zee

3

मुझे नहीं लगता कि एचटीएमएल <p> टैग वास्तविक लेखन शैलियों के मुहावरों को नियंत्रित करने के लिए है। यह व्यवस्थित ढंग से पाठ का एक हिस्सा प्रदर्शित करने का एक तरीका है। मुझे विश्वास नहीं है कि यह मुद्रित सामग्री अनुकरण करने के लिए है। आपको इसके लिए एक div का उपयोग करना होगा।

+0

यदि यह केवल फ़ॉर्मेटिंग के लिए है, तो ऐसा लगता है कि 'पी' टैग का उपयोग करने में बहुत कम बिंदु है ... लेकिन मुझे पूरा यकीन है कि मैंने ब्राउज़र के कुछ उल्लेख देखे हैं जो उन्हें अलग-अलग व्यवहार करते हैं - लेकिन मैं ' मुझे याद नहीं है। (शायद स्क्रीन पाठकों से संबंधित कुछ।) – Zee

+0

कुछ इसे अलग-अलग संभाल सकते हैं, लेकिन आप उन प्रत्यारोपणों पर अपने काम की गुणवत्ता को कभी भी नहीं लेना चाहते हैं। आप हमेशा, हमेशा जमीन के लिए शूट करना चाहते हैं; जितना अधिक उपयोगकर्ता आप खुश कर सकते हैं आपकी साइट से बेहतर होगा। – John

+0

बिल्कुल - और इसलिए मैंने सवाल पूछा ... – Zee

0

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

+0

सूची के लिए पिछले पाठ का हिस्सा होने के लिए शायद यह अधिक आम है (और मुझे पता है कि यह कैसे प्रस्तुत करता है इसमें कोई अंतर नहीं होगा, लेकिन मैं यह समझने की कोशिश कर रहा हूं कि सही चीज़ क्या है ...)। – Zee

1

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

जबकि एक सूची विचार की रेखा में एक ब्रेक का प्रतिनिधित्व नहीं करती है, यह निश्चित रूप से आवाज या विचार की विधि में परिवर्तन का प्रतिनिधित्व करती है, जो मुझे विश्वास है कि एक नया अर्थपूर्ण कंटेनर योग्यता है।

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

सेमेन्टिक्स काफी हद तक व्यक्तिपरक हो सकता है। और यह ठीक है। हालांकि, इस मामले में, मेरा मानना ​​है कि एचटीएमएल स्पेक अर्थात् अर्थशास्त्र का प्रतिनिधित्व करता है।

+1

खैर, मैंने विशेष रूप से यह चर्चा करने से परहेज किया कि यह सही निर्णय है या नहीं - बिंदु पर और, मुझे नहीं लगता कि HTML spec लेखकों को ऐसी स्थिति में होना चाहिए जहां वे निर्धारित करते हैं कि सूची में एक अनुच्छेद ऐसा कुछ है जिसे अनुमति दी जानी चाहिए या नहीं। इसके लिए विभिन्न संस्कृतियों में टाइपोग्राफ़िकल कार्यों की पूरी तरह से जांच की आवश्यकता है, और निश्चित रूप से टाइपोग्राफिकल सिस्टम (ला/टीएक्स एक स्पष्ट होने के उदाहरण) के बहुत सारे उदाहरण हैं जो पैराग्राफ में नेस्टेड सूचियों की अनुमति देते हैं। – Zee

+0

मुझे लगता है कि, आपके प्रश्न का आसान उत्तर "नहीं" –

+0

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

3

क्या यह सब के पीछे एक दृश्य शैली कारण है? दूसरे शब्दों में जब आपके पास निम्न की तरह कुछ होता है, तो क्या यह दृष्टि से प्रस्तुत करता है कि आपको आदर्श नहीं लगता है?

<p>Some paragraph text.</p> 
<ul> 
    <li>First list item</li> 
    <li>Second list item</li> 
    <li>Third list item</li> 
</ul> 
<p>Another paragraph.</p> 

समस्या पी के बाद और यूएल से पहले बहुत ज्यादा मार्जिन है, तो आप इस तरह एक बगल भाई चयनकर्ता क्षतिपूर्ति करने के लिए कोशिश कर सकते हैं:

p + ul { margin-top: -1em; } 
+1

दृश्य प्रतिपादन समस्या नहीं थी (divs वैसे भी ठीक काम करते हैं) - टैग को सार्थक रखने के लिए, इसे करने के लिए कुछ "सही" तरीका खोजने का प्रयास किया गया था। – Zee