Safari ve Google Chrome tarayıcıları her hangi bir metin girdi alanına(text input) odaklandığında bu elemanın etrafını bir şerit ile belirliyor.
Google Chrome Normal Hali
Google Chrome Odaklanmış Hali
Safari Normal Hali
Safari Odaklanmış Hali
Bu normalde güzel bir özellik, ancak biz eğer standart metin girdi alanı yerine kendi tasarladığımız bir metin girdi alanı koydu isek bu odaklanma çizgileri sorun çıkarıyor. Bir örnek yapalım.
En son projelerimden bonus.com.tr?de böyle bir sorun ile karşılaştığımda buna bir çözüm aradım. İlk kodum şöyle idi.
04 |
< meta http-equiv = "Content-Type" content = "text/html; charset=utf-8" /> |
05 |
< title >Untitled Document</ title > |
06 |
< style type = "text/css" > |
07 |
body{background-color:#52c520;} |
10 |
background:url(images/arama_zemini.gif) 0 0 no-repeat; |
15 |
.aramaMetinKutusuOdak{ |
16 |
background:url(images/arama_zemini.gif) 0 -31px no-repeat; |
21 |
.aramaMetinKutusu input{ |
27 |
.aramaMetinKutusuOdak input:focus{ |
31 |
background-color:#F6FFD4 |
38 |
< div class = "aramaMetinKutusu" > |
39 |
< input type = "text" name = "arama" onfocus = "this.parentNode.className='aramaMetinKutusuOdak'" onblur = "this.parentNode.className='aramaMetinKutusu'" /> |
Bu kodlarım Firefox ve IE?de sorunsuz çalıştı. Daha sonra sayfayı Google Chrome?da test ettiğimde aşağıdaki gibi bir sorun ile karşılaştım.
Sorunun çözümünü araştırdığımda dış kenar çizgisini sıfırlamam gerektiğini gördüm.
tanımı bizi çözüme ulaştırdı.
Örnek kodu görmnek için tıklayınız.
Peki dış hat çizgisini kaldrımayalım demiştik şimdi ise kaldırdık, ne olacak şimdi? Burada odaklanma durumu için bir sınıf atayıp ona ayrı bir tanım yaptığımız için klavye kullananlar için sorun olmayacaktır.
Kaynaklar
Kaynak : CSS Dersleri, Fatih HAYRİOĞLU