นี่เป็นข้อกังวลร่วมกัน
เค้าร่างเริ่มต้นที่เบราว์เซอร์แสดงนั้นน่าเกลียด
ดูตัวอย่างนี้:
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>
สิ่งนี้สามารถขยายเพิ่มเติมได้โดยใช้ไลบรารีภายนอกที่สร้างบนแนวคิดของการแก้ไข "เค้าร่าง" ซึ่งตรงข้ามกับการลบออกทั้งหมดเช่นMaterialize
คุณสามารถจบลงด้วยสิ่งที่ไม่น่าเกลียดและทำงานด้วยความพยายามน้อยมาก
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;}