2013-04-18 22 views
5

Bugün, Chrome'da, taşma gizli kapsayıcısından tamamen ayrılmış bir öğeye odaklandığımda, Chrome tarayıcısında (Mac) görünecek tuhaf bir sorunum var.Gizli öğe, Chrome'da odaklandığında nasıl gösterilmeli?

Sorunu göstermek için bir keman yaptık: http://jsfiddle.net/GHgtc/

Html

<div id="container"> 
     <a id="inner-button" href="#">You can see me !</a> 
    </div> 

Css

#container{ 
    display: block; 
    background: blue; 
    width: 200px; 
    height: 30px; 
    position: relative; 
    overflow: hidden; 
} 

#inner-button{ 
    display: block; 
    background: red; 
    width: 20px; 
    height: 20px; 
    position: absolute; 
    top: 5px; 
    right: -20px; 
} 
Yardımlarınız için

teşekkürler!

Şerefe!

+1

Tamam, bu tüyler ürpertici ... – xpy

+1

Eğer '# iç-düğmesi kullansanız bile: odak {right: -40px;}' odaklanmayı kaybedecek şekilde görünecektir. – xpy

+0

Bilgi için, aynısı FF için de geçerlidir. – xpy

cevap

2

"İç düğmenizde" tabindex = "- 1" tuşlarını kullanın. Bu odağı önleyecektir. http://jsfiddle.net/GHgtc/2/

<input placeholder="focus on me then press tab" type="text"> 
<div id="container"> 
    <a id="inner-button" tabindex="-1" href="#">You can see me !</a> 
</div> 

GÜNCELLEME:

kendime ait bazı odak konuyla ilgili çalışmaları sırasında sorununa başka bir olası çözüm yoktur fark etti. İhtiyacınız olan odak daha sonra javascript olayıyla tetiklenecekse z-endeksi: -1 kullanabilirsiniz. o Odaklanabilir ama gizli tutacak

http://jsfiddle.net/GHgtc/3/

#inner-button{ 
    display: block; 
    background: red; 
    width: 20px; 
    height: 20px; 
    position: absolute; 
    top: 5px; 
    right: -20px; 
    z-index:-1; 
} 
. Ve bunu z-endeksi ile geriye görünür hale getirebilirsiniz: 0 dinamik olarak.

+0

Merhaba, evet, bu çözümle çalışmaya geldim, ancak odaklamayı önler ve bu istenmeyen bir durumdur. Sorun, bu garip yan etki olmadan odağın nasıl saklanacağıdır ... – Yukulelix

+2

Ah iyi. Bağlantı sekmesine odaklanırsanız bir çapa bağlantısı odaklanır. Bu, ekran okuyucular için gerekli olan erişilebilirlikle ilgili bir davranış veya "yalnızca klavye" gezinmesidir. Aslında normal. Sadece Safari'nin sadece evrensel erişim yardımı ile gösterdiği anlaşılıyor. Eğer bir başka olay ortaya çıkana kadar bu iç düğmeyi gizlemek istiyorsanız, önce görünürlükle gizlemeye ne dersiniz: gizli; ? Sizin pozisyonunuz: mutlak; yöntem şu anda o düğmeyi gizlemiyor. Sadece görünürlük: gizli; veya göster: yok; odaklandığında aslında gizler. Örneğin, erişilebilirlik nedeni için odaklanmış bir bağlantı gösterilecektir. – hexalys