यह एक आम चिंता का विषय है।
ब्राउज़र द्वारा प्रस्तुत डिफ़ॉल्ट रूपरेखा बदसूरत है।
उदाहरण के लिए इसे देखें:
form,
label {
margin: 1em auto;
}
label {
display: block;
}
<form>
<label>Click to see the input below to see the outline</label>
<input type="text" placeholder="placeholder text" />
</form>
सबसे आम "फिक्स" जो सबसे अधिक अनुशंसा करता है outline:none
- जो कि अगर गलत तरीके से उपयोग किया जाता है - पहुंच के लिए आपदा है।
तो ... क्या उपयोग की रूपरेखा वैसे भी है?
वहाँ एक बहुत सूखी-कट वेबसाइट है जो मैंने पाया जो सब कुछ अच्छी तरह से समझाती है।
यह TAB कुंजी (या समतुल्य) का उपयोग करके वेब दस्तावेज़ को नेविगेट करते समय "फ़ोकस" वाले लिंक के लिए दृश्य प्रतिक्रिया प्रदान करता है। यह उन लोगों के लिए विशेष रूप से उपयोगी है जो एक माउस का उपयोग नहीं कर सकते हैं या एक दृश्य हानि हो सकती है। यदि आप इन लोगों के लिए अपनी साइट को दुर्गम बना रहे हैं, तो आप इसकी रूपरेखा निकाल दें।
ठीक है, चलो इसे ऊपर के समान उदाहरण के लिए आज़माएं, अब TAB
नेविगेट करने के लिए कुंजी का उपयोग करें।
form,
label {
margin: 1em auto;
}
label {
display: block;
}
<form>
<label>Click on this text and then use the TAB key to naviagte inside the snippet.</label>
<input type="text" placeholder="placeholder text" />
</form>
ध्यान दें कि आप कैसे बता सकते हैं कि इनपुट पर क्लिक किए बिना फोकस कहां है?
अब, outline:none
हमारे भरोसे पर कोशिश करते हैं<input>
इसलिए, एक बार फिर, TAB
पाठ पर क्लिक करने के बाद नेविगेट करने के लिए कुंजी का उपयोग करें और देखें कि क्या होता है।
form,
label {
margin: 1em auto;
}
label {
display: block;
}
input {
outline: none;
}
<form>
<label>Click on this text and then use the TAB key to naviagte inside the snippet.</label>
<input type="text" placeholder="placeholder text" />
</form>
देखें कि फोकस कहां है, यह पता लगाना कितना मुश्किल है? केवल बताने वाला संकेत कर्सर ब्लिंकिंग है। ऊपर मेरा उदाहरण सरल है। वास्तविक दुनिया की स्थितियों में, आपके पास पृष्ठ पर केवल एक तत्व नहीं होगा। इस की तर्ज पर कुछ और।
.wrapper {
width: 500px;
max-width: 100%;
margin: 0 auto;
}
form,
label {
margin: 1em auto;
}
label {
display: block;
}
input {
outline: none;
}
<div class="wrapper">
<form>
<label>Click on this text and then use the TAB key to naviagte inside the snippet.</label>
<input type="text" placeholder="placeholder text" />
<input type="text" placeholder="placeholder text" />
<input type="text" placeholder="placeholder text" />
<input type="text" placeholder="placeholder text" />
<input type="text" placeholder="placeholder text" />
<input type="text" placeholder="placeholder text" />
</form>
<form>
First name:<br>
<input type="text" name="firstname"><br> Last name:<br>
<input type="text" name="lastname">
</form>
<form>
<input type="radio" name="gender" value="male" checked> Male<br>
<input type="radio" name="gender" value="female"> Female<br>
<input type="radio" name="gender" value="other"> Other
</form>
<form>
<label for="GET-name">Name:</label>
<input id="GET-name" type="text" name="name">
</form>
<form>
<label for="POST-name">Name:</label>
<input id="POST-name" type="text" name="name">
</form>
<form>
<fieldset>
<legend>Title</legend>
<input type="radio" name="radio" id="radio">
<label for="radio">Click me</label>
</fieldset>
</form>
</div>
अब उसी टेम्पलेट से तुलना करें यदि हम रूपरेखा रखते हैं:
.wrapper {
width: 500px;
max-width: 100%;
margin: 0 auto;
}
form,
label {
margin: 1em auto;
}
label {
display: block;
}
<div class="wrapper">
<form>
<label>Click on this text and then use the TAB key to naviagte inside the snippet.</label>
<input type="text" placeholder="placeholder text" />
<input type="text" placeholder="placeholder text" />
<input type="text" placeholder="placeholder text" />
<input type="text" placeholder="placeholder text" />
<input type="text" placeholder="placeholder text" />
<input type="text" placeholder="placeholder text" />
</form>
<form>
First name:<br>
<input type="text" name="firstname"><br> Last name:<br>
<input type="text" name="lastname">
</form>
<form>
<input type="radio" name="gender" value="male" checked> Male<br>
<input type="radio" name="gender" value="female"> Female<br>
<input type="radio" name="gender" value="other"> Other
</form>
<form>
<label for="GET-name">Name:</label>
<input id="GET-name" type="text" name="name">
</form>
<form>
<label for="POST-name">Name:</label>
<input id="POST-name" type="text" name="name">
</form>
<form>
<fieldset>
<legend>Title</legend>
<input type="radio" name="radio" id="radio">
<label for="radio">Click me</label>
</fieldset>
</form>
</div>
इसलिए हमने निम्नलिखित की स्थापना की है
- रूपरेखा बदसूरत है
- उन्हें हटाना जीवन को और कठिन बना देता है।
तो जवाब क्या है?
बदसूरत रूपरेखा निकालें और ध्यान केंद्रित करने के लिए अपने स्वयं के दृश्य संकेतों को जोड़ें।
यहाँ एक बहुत सरल उदाहरण है कि मेरा क्या मतलब है।
मैं रूपरेखा निकालता हूं और नीचे की सीमा जोड़ता हूं : फोकस और : सक्रिय । मैं पारदर्शी, फोकस और : सक्रिय (व्यक्तिगत प्राथमिकता) पर उन्हें सेट करके शीर्ष, बाईं और दाईं ओर की डिफ़ॉल्ट सीमाओं को भी हटा देता हूं
form,
label {
margin: 1em auto;
}
label {
display: block;
}
input {
outline: none
}
input:focus,
input:active {
border-color: transparent;
border-bottom: 2px solid red
}
<form>
<label>Click to see the input below to see the outline</label>
<input type="text" placeholder="placeholder text" />
</form>
इसलिए, हम पहले से हमारे "वास्तविक दुनिया" उदाहरण के साथ ऊपर दिए गए दृष्टिकोण की कोशिश करते हैं:
.wrapper {
width: 500px;
max-width: 100%;
margin: 0 auto;
}
form,
label {
margin: 1em auto;
}
label {
display: block;
}
input {
outline: none
}
input:focus,
input:active {
border-color: transparent;
border-bottom: 2px solid red
}
<div class="wrapper">
<form>
<label>Click on this text and then use the TAB key to naviagte inside the snippet.</label>
<input type="text" placeholder="placeholder text" />
<input type="text" placeholder="placeholder text" />
<input type="text" placeholder="placeholder text" />
<input type="text" placeholder="placeholder text" />
<input type="text" placeholder="placeholder text" />
<input type="text" placeholder="placeholder text" />
</form>
<form>
First name:<br>
<input type="text" name="firstname"><br> Last name:<br>
<input type="text" name="lastname">
</form>
<form>
<input type="radio" name="gender" value="male" checked> Male<br>
<input type="radio" name="gender" value="female"> Female<br>
<input type="radio" name="gender" value="other"> Other
</form>
<form>
<label for="GET-name">Name:</label>
<input id="GET-name" type="text" name="name">
</form>
<form>
<label for="POST-name">Name:</label>
<input id="POST-name" type="text" name="name">
</form>
<form>
<fieldset>
<legend>Title</legend>
<input type="radio" name="radio" id="radio">
<label for="radio">Click me</label>
</fieldset>
</form>
</div>
बाहरी पुस्तकालयों का उपयोग करके इसे आगे बढ़ाया जा सकता है जो "रूपरेखा" को संशोधित करने के विचार पर निर्माण करते हैं क्योंकि इसे पूरी तरह से भौतिक रूप से हटाने के विपरीत है
आप किसी ऐसी चीज़ के साथ समाप्त हो सकते हैं जो बदसूरत नहीं है और बहुत कम प्रयास के साथ काम करती है
body {
background: #444
}
.wrapper {
padding: 2em;
width: 400px;
max-width: 100%;
text-align: center;
margin: 2em auto;
border: 1px solid #555
}
button,
.wrapper {
border-radius: 3px;
}
button {
padding: .25em 1em;
}
input,
label {
color: white !important;
}
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.100.1/css/materialize.min.css" />
<div class="wrapper">
<form>
<input type="text" placeholder="Enter Username" name="uname" required>
<input type="password" placeholder="Enter Password" name="psw" required>
<button type="submit">Login</button>
</form>
</div>
input:focus, textarea:focus {outline: none;}