चलो अंतिम आउटपुट पर विचार करते हैं जो हम प्राप्त करना चाहते हैं जो उपयोगकर्ता के लिए है: एक सीमा और पैडिंग दोनों के साथ एक गद्देदार बनावट, जो विशेषताओं पर क्लिक किया जा रहा है कि वे हमारे टेक्सारिया पर ध्यान केंद्रित करते हैं, और स्वचालित 100% चौड़ाई का लाभ ब्लॉक तत्वों के विशिष्ट।
मेरी राय में सबसे अच्छा तरीका अधिकतम ब्राउज़र समर्थन तक पहुंचने के लिए, जहाँ तक संभव हो निम्न स्तर के समाधानों का उपयोग करना है। इस मामले में केवल HTML ठीक काम कर सकता है, जावास्क्रिप्ट के उपयोग से बचना (जो किसी भी तरह हम सभी को प्यार करता है)।
LABEL टैग हमारी मदद के लिए आता है क्योंकि इस तरह का व्यवहार होता है और इसे इनपुट तत्वों को शामिल करने की अनुमति होती है जिसे इसे संबोधित करना चाहिए। इसकी डिफ़ॉल्ट शैली इनलाइन तत्वों में से एक है, इसलिए, लेबल को ब्लॉक डिस्प्ले स्टाइल में देने से हम स्वयं को पैडिंग और बॉर्डर सहित 100% चौड़ाई का लाभ उठा सकते हैं, जबकि आंतरिक बनावट में कोई सीमा नहीं है, कोई पैडिंग और 100% चौड़ाई नहीं है ।
W3C पर एक नज़र डालते हुए अन्य फायदे जो हम देख सकते हैं वे हैं:
- कोई "के लिए" विशेषता की आवश्यकता है: जब किसी लेबल टैग में लक्ष्य इनपुट होता है, तो यह स्वचालित रूप से क्लिक किए जाने पर बच्चे के इनपुट पर ध्यान केंद्रित करता है;
- यदि textarea के लिए एक बाहरी लेबल पहले से ही डिज़ाइन किया गया है, तो कोई संघर्ष नहीं होता है, क्योंकि दिए गए इनपुट में एक या अधिक लेबल हो सकते हैं।
देखें W3C बारीकियों में अधिक विस्तृत जानकारी के लिए।
सरल उदाहरण:
.container {
width: 400px;
border: 3px
solid #f7c;
}
.textareaContainer {
display: block;
border: 3px solid #38c;
padding: 10px;
}
textarea {
width: 100%;
margin: 0;
padding: 0;
border-width: 0;
}
<body>
<div class="container">
I am the container
<label class="textareaContainer">
<textarea name="text">I am the padded textarea with a styled border...</textarea>
</label>
</div>
</body>
.TextareaContainer तत्वों की पैडिंग और बॉर्डर वे हैं जो हम टेक्सटेरिया को देना चाहते हैं। जैसा आप चाहते हैं उसे स्टाइल करने के लिए उन्हें संपादित करने का प्रयास करें। मैंने .textareaContainer तत्व को बड़े और दृश्यमान पैडिंग और बॉर्डर दिए हैं, जिन्हें क्लिक करने पर आप उनके व्यवहार को देख सकते हैं।