Bu yaygın bir endişe kaynağıdır.
Tarayıcıların oluşturduğu varsayılan anahat çirkin.
Bu örneğe bakınız:
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>
En çok tavsiye edilen en yaygın "düzeltme" outline:none
- yanlış kullanılırsa erişilebilirlik için felakettir.
Peki ... taslak zaten ne işe yarar?
Her şeyi iyi açıklayan çok kuru bir web sitesi buldum.
SEKME tuşunu (veya eşdeğerini) kullanarak bir web belgesinde gezinirken "odak" olan bağlantılar için görsel geri bildirim sağlar. Bu özellikle fare kullanamayan veya görme bozukluğu olan kişiler için yararlıdır. Ana hatları kaldırırsanız, sitenize bu kişiler için erişilemez hale gelirsiniz.
Tamam, yukarıdakiyle aynı örneği deneyelim, şimdi TAB
gezinmek için tuşunu kullanın.
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>
Girişe tıklamadan bile odağın nerede olduğunu nasıl anlayabileceğinizi fark ettiniz mi?
Şimdi, outline:none
güvenilirimizi deneyelim<input>
Yani, bir kez daha, TAB
metni tıkladıktan sonra gezinmek ve ne olduğunu görmek için tuşunu kullanın.
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>
Odak noktasının nerede olduğunu anlamak daha zor mu? Tek söyleyen işaret imlecin yanıp sönmesidir. Yukarıdaki örneğim aşırı basit. Gerçek dünyadaki durumlarda, sayfada yalnızca bir öğe olmazdı. Bunun çizgisinde daha fazla bir şey.
.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>
Şimdi anahattı saklarsak bunu aynı şablonla karşılaştırın:
.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>
Bu yüzden aşağıdakileri kurduk
- Anahatlar çirkin
- Onları çıkarmak hayatı zorlaştırır.
Peki cevap ne?
Çirkin dış çizgiyi kaldırın ve odağı belirtmek için kendi görsel ipuçlarınızı ekleyin.
İşte ne demek istediğimin çok basit bir örneği.
Anahattı kaldırıyorum ve alt kenarlık ekliyorum : odak ve : aktif . Ayrıca üst, sol ve sağ taraftaki varsayılan kenarlıkları şeffaf olarak ayarlayarak kaldırırım : odak ve : etkin (kişisel tercih)
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>
Bu yüzden, yukarıdaki yaklaşımı daha önceki "gerçek dünya" örneğimizle deniyoruz:
.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>
Tamamen Materialize gibi kaldırmanın aksine "taslağı" değiştirme fikrine dayanan harici kütüphaneler kullanılarak bu genişletilebilir.
Çirkin olmayan ve çok az çaba ile çalışan bir şeyle sonuçlanabilirsin
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;}