Đây là một mối quan tâm chung.
Các phác thảo mặc định mà trình duyệt hiển thị là xấu xí.
Xem ví dụ này:
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>
"Cách khắc phục" phổ biến nhất mà hầu hết khuyến nghị là outline:none
- nếu sử dụng không đúng cách - là thảm họa cho khả năng truy cập.
Vì vậy, ... những gì sử dụng là phác thảo?
Có một trang web rất khô mà tôi tìm thấy giải thích mọi thứ tốt.
Nó cung cấp phản hồi trực quan cho các liên kết có "tiêu điểm" khi điều hướng tài liệu web bằng phím TAB (hoặc tương đương). Điều này đặc biệt hữu ích cho những người không thể sử dụng chuột hoặc khiếm thị. Nếu bạn xóa phác thảo bạn đang làm cho trang web của bạn không thể truy cập được cho những người này.
Ok, chúng ta hãy thử ví dụ như trên, bây giờ sử dụng TAB
phím để điều hướng.
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>
Lưu ý làm thế nào bạn có thể biết nơi tập trung ngay cả khi không nhấp vào đầu vào?
Bây giờ, hãy thử outline:none
tin tưởng của chúng tôi<input>
Vì vậy, một lần nữa, sử dụng TAB
phím để điều hướng sau khi nhấp vào văn bản và xem điều gì xảy ra.
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>
Xem làm thế nào khó khăn hơn để tìm ra nơi tập trung là gì? Dấu hiệu duy nhất là con trỏ nhấp nháy. Ví dụ của tôi ở trên là quá đơn giản. Trong các tình huống thực tế, bạn sẽ không chỉ có một yếu tố trên trang. Một cái gì đó nhiều hơn dọc theo dòng này.
.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>
Bây giờ so sánh nó với cùng một mẫu nếu chúng ta giữ nguyên phác thảo:
.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>
Vì vậy, chúng tôi đã thiết lập như sau
- Đề cương là xấu
- Loại bỏ chúng làm cho cuộc sống khó khăn hơn.
Vậy câu trả lời là gì?
Loại bỏ các phác thảo xấu xí và thêm tín hiệu hình ảnh của riêng bạn để chỉ trọng tâm.
Đây là một ví dụ rất đơn giản về những gì tôi muốn nói.
Tôi xóa phác thảo và thêm đường viền dưới vào : tập trung và : kích hoạt . Tôi cũng xóa các đường viền mặc định ở phía trên, bên trái và bên phải bằng cách đặt chúng ở dạng trong suốt : tập trung và : hoạt động (tùy chọn cá nhân)
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>
Vì vậy, chúng tôi cố gắng tiếp cận trên với ví dụ "thực tế" của chúng tôi từ trước đó:
.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>
Điều này có thể được mở rộng hơn nữa bằng cách sử dụng các thư viện bên ngoài dựa trên ý tưởng sửa đổi "phác thảo" thay vì loại bỏ nó hoàn toàn như Materialize
Bạn có thể kết thúc với một cái gì đó không xấu và làm việc với rất ít nỗ lực
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;}