program - html tutorial pdf




एक लंगर के अंदर एक div को हमेशा सही डाल रहा है? (9)

आप <div> अंदर <a> नहीं डाल सकते - यह वैध (एक्स) HTML नहीं है।

भले ही आप डिस्प्ले के साथ एक अवधि को स्टाइल करते हैं: ब्लॉक आप अभी भी इसके अंदर ब्लॉक-स्तरीय तत्व नहीं डाल सकते हैं: (एक्स) एचटीएमएल को अभी भी (एक्स) एचटीएमएल डीटीडी (जो भी आप उपयोग करते हैं) का पालन करना है, कोई फर्क नहीं पड़ता कि सीएसएस कैसे चीजें बदलता है।

ब्राउजर शायद इसे वैसे ही प्रदर्शित करेगा जैसा आप चाहते हैं, लेकिन इससे यह सही नहीं होता है।

मैंने सुना है कि एक इनलाइन तत्व के अंदर एक ब्लॉक तत्व डालने वाला एक HTML पाप है:

<a href="http://www.mydomain.com"><div>
What we have here is a problem. 
You see, an anchor element is an inline element,
and the div element is a block level element.
</div></a>

लेकिन क्या होगा यदि आप बाहरी एंकर को display:block रूप में स्टाइल करते display:block स्टाइलशीट में display:block करें? क्या यह अभी भी गलत है? ब्लॉक-स्तर और इनलाइन तत्वों पर HTML 4.01 spec ऐसा लगता है:

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

क्या किसी के पास इस मुद्दे के बारे में कोई और सुझाव है?


एक एफवाईआई के रूप में।

यदि आपका लक्ष्य आपके div को क्लिक करने योग्य बनाना है तो आप jQuery / जावा स्क्रिप्ट का उपयोग कर सकते हैं।

अपने div को इस प्रकार परिभाषित करें:

<div class="clickableDiv" style="cursor:pointer">
  This is my div. Try clicking it!
</div>

तब आपका jQuery तब कार्यान्वित किया जाएगा:

 <script type="text/javascript">

    $(document).ready(function () {

        $("div.clickableDiv").click(function () {
            alert("Peekaboo"); 
        });
    });
</script>

यह इस धागे में टॉम की टिप्पणी के अनुसार - कई divs के लिए भी काम करेगा


एचटीएमएल 5 विनिर्देश के साथ ... अब एक इनलाइन तत्व के अंदर ब्लॉक-स्तर तत्व डालना संभव है। तो अब 'ए' तत्व के अंदर 'div' या 'h1' डालने के लिए यह बिल्कुल उचित है।


एचटीएमएल के संस्करण के आधार पर आप खानपान कर रहे हैं:

  • एचटीएमएल 5 में कहा गया है कि <a> तत्व "पूरे अनुच्छेदों, सूचियों, तालिकाओं, और बहुत आगे, यहां तक ​​कि पूरे खंडों के चारों ओर लपेटा जा सकता है, जब तक कि कोई इंटरैक्टिव सामग्री नहीं है (जैसे बटन या अन्य लिंक)"।

  • एचटीएमएल 4.01 निर्दिष्ट करता है कि <a> तत्वों में केवल इनलाइन तत्व हो सकते हैं । एक <div> एक ब्लॉक तत्व है , इसलिए यह <a> अंदर प्रकट नहीं हो सकता है।

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

    हालांकि आपको यह सुनिश्चित करना चाहिए कि दस्तावेज़ की संरचना तब भी समझ में आती है जब सीएसएस मौजूद नहीं होता है, उदाहरण के लिए जब एक स्क्रीन रीडर जैसे सहायक तकनीक के माध्यम से पहुंचाया जाता है - या वास्तव में जब शक्तिशाली Googlebot द्वारा जांच की जाती है।


नहीं, यह मान्य नहीं होगा, लेकिन हाँ यह आमतौर पर आधुनिक ब्राउज़रों में काम करेगा। ऐसा कहा जा रहा है, अपने एंकर के अंदर एक अवधि का उपयोग करें, और display: block सेट करें display: block उस पर भी display: block करें, जो निश्चित रूप से हर जगह काम करेगा, और यह मान्य होगा!


ब्लॉक स्तर जैसे <div> को एचटीएमएल 5 में <a> टैग द्वारा लपेटा जा सकता है। हालांकि <div> को प्रवाह सामग्री के लिए एक कंटेनर / रैपर माना जाता है और <a> को एमडीएन के अनुसार प्रवाह सामग्री माना जाता है। अर्थात् इनलाइन तत्वों को बनाना बेहतर हो सकता है जो ब्लॉक स्तर तत्वों के रूप में कार्य करते हैं।


यदि आप <a> ब्लॉक बनाने के प्रयास में जा रहे हैं, तो <div को div के अंदर क्यों न रखें, ब्लॉक तत्व होने के कारण यह आपको वही प्रभाव देगा।


यदि आप इसे ब्लॉक-शैली तत्व में बदलते हैं, तो नहीं, यह अब 'गलत' नहीं है, लेकिन शायद यह मान्य नहीं होगा। लेकिन यह आपके द्वारा किए जा रहे कार्यों को करने में ज्यादा समझ नहीं आता है। आपको या तो एंकर टैग को ब्लॉक स्तर तत्व के रूप में रखना चाहिए जिसमें कोई आंतरिक div नहीं है, या बाहर div को डालना चाहिए।


संक्षिप्त उत्तर यहाँ है।

हाँ यही है। हो सकता है।







html