यह 2019 है और इस समस्या के पिछले उत्तर उपयोग नहीं कर रहे हैं
- सीएसएस ग्रिड
- सीएसएस चर
- एचटीएमएल 5 तत्व
- CSS में SVG
सीएसएस ग्रिड 2019 में फॉर्म करने का तरीका है क्योंकि आप अपने लेबलों को अतिरिक्त इनपुट, स्पैन, स्पैन के साथ और अन्य अवशेषों के बिना अपने इनपुट से पहले ले सकते हैं।
यहाँ हम न्यूनतम CSS के साथ जा रहे हैं:
उपरोक्त के लिए HTML:
<form action="https://www.example.com/register/" method="post" id="form-validate" enctype="multipart/form-data">
<p class="form-instructions">Please enter the following information to create your account.</p>
<label for="firstname">First name</label>
<input type="text" id="firstname" name="firstname" value="" title="First name" maxlength="255" required="">
<label for="lastname">Last name</label>
<input type="text" id="lastname" name="lastname" value="" title="Last name" maxlength="255" required="">
<label for="email_address">Email address</label>
<input type="email" autocapitalize="off" autocorrect="off" spellcheck="false" name="email" id="email_address" value="" title="Email address" size="30" required="">
<label for="password">Password</label>
<input type="password" name="password" id="password" title="Password" required="">
<label for="confirmation">Confirm password</label>
<input type="password" name="confirmation" title="Confirm password" id="confirmation" required="">
<input type="checkbox" name="is_subscribed" title="Subscribe to our newsletter" value="1" id="is_subscribed" class="checkbox">
<label for="is_subscribed">Subscribe to the newsletter</label>
<input type="checkbox" name="persistent_remember_me" id="remember_meGCJiRe0GbJ" checked="checked" title="Remember me">
<label for="remember_meGCJiRe0GbJ">Remember me</label>
<p class="required">* Required</p>
<button type="submit" title="Register">Register</button>
</form>
प्लेसहोल्डर पाठ भी जोड़ा जा सकता है और अत्यधिक अनुशंसित है। (मैं इस मध्य रूप का उत्तर दे रहा हूं)।
अब CSS चरों के लिए:
--icon-required: url('data:image/svg+xml,\
<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100" viewBox="-10 -6 16 16"> \
<line id="line" y1="-3" y2="3" stroke="%23df0000" stroke-linecap="butt" transform="rotate(15)"></line> \
<line id="line" y1="-3" y2="3" stroke="%23df0000" stroke-linecap="butt" transform="rotate(75)"></line> \
<line id="line" y1="-3" y2="3" stroke="%23df0000" stroke-linecap="butt" transform="rotate(-45)"></line> \
</svg>');
--icon-tick: url('data:image/svg+xml,\
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="100" height="100" viewBox="-2 -2 16 16"> \
<path fill="green" stroke-linejoin="round" d="M2 6L1 7l3 4 7-10h-1L4 8z"/> \
</svg>');
प्रपत्र तत्वों के लिए CSS:
input[type=text][required],
input[type=email][required],
input[type=password][required],
input[type=tel][required] {
background-image: var(--icon-required);
background-position-x: right;
background-repeat: no-repeat;
background-size: contain;
}
input:valid {
--icon-required: var(--icon-tick);
}
फॉर्म सीएसएस ग्रिड में ही होना चाहिए:
form {
align-items: center;
display: grid;
grid-gap: var(--form-grid-gap);
grid-template-columns: var(--form-grid-template-columns);
margin: auto;
}
कॉलम के लिए मानों को 1 / -1 के सेट के रूप में टैग जैसे किसी भी चीज़ के साथ 1fr auto
या उसके 1fr
साथ सेट किया जा सकता है <p>
। आप अपने मीडिया प्रश्नों में परिवर्तन करते हैं ताकि आपके पास इनपुट बॉक्स मोबाइल पर पूर्ण चौड़ाई और डेस्कटॉप पर ऊपर के अनुसार हो। यदि आप सीएसएस चर दृष्टिकोण का उपयोग करके चाहें तो मोबाइल पर अपना ग्रिड अंतर भी बदल सकते हैं।
जब बक्से वैध होते हैं तो आपको तारांकन के बजाय हरे रंग की टिक मिलनी चाहिए।
CSS में SVG ब्राउज़र का तारांकन करने के लिए सर्वर की एक गोल यात्रा करने से बचाने का एक तरीका है। इस तरह से आप तारांकन को ठीक कर सकते हैं, यहाँ के उदाहरण एक असामान्य कोण पर हैं, आप इसे संपादित कर सकते हैं क्योंकि उपरोक्त SVG आइकन पूरी तरह से पठनीय है। केंद्र के ऊपर या नीचे तारांकित करने के लिए व्यूबॉक्स में भी संशोधन किया जा सकता है।