2013-04-18 14 views
5

Oggi ho un problema strano, in Chrome, quando mi concentro su un elemento che è assolutamente posizionato fuori dal suo contenitore nascosto overflow, diventa visibile nel browser Chrome (Mac).Come impedire la visualizzazione di elementi nascosti quando ci si concentra in Chrome?

Ho fatto un violino per illustrare il problema: 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; 
} 

Grazie per il vostro aiuto!

Cheers!

+1

OK, questo è raccapricciante ... – xpy

+1

Anche se usi '# inner-button: focus {right: -40px;}' diventerà visibile quando smetterà di mettere a fuoco. – xpy

+0

Per le informazioni, lo stesso vale per FF. – xpy

risposta

2

Utilizzare tabindex = "- 1" sul "pulsante interno". Ciò impedirà la messa a fuoco. 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> 

UPDATE:

ho capito c'è un'altra possibile soluzione per il problema mentre si lavora su qualche problema di messa a fuoco della mia. Puoi utilizzare z-index: -1 se l'attenzione di cui hai bisogno deve essere attivata in seguito tramite l'evento javascript.

#inner-button{ 
    display: block; 
    background: red; 
    width: 20px; 
    height: 20px; 
    position: absolute; 
    top: 5px; 
    right: -20px; 
    z-index:-1; 
} 

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

che manterrà è attivabile, ma nascosto. E puoi renderlo visibile di nuovo con z-index: 0 dinamicamente.

+0

Ciao, sì, sono venuto a lavorare con quella soluzione, ma impedisce la messa a fuoco e questo non è voluto. Il problema è come mantenere la messa a fuoco disponibile senza questo strano effetto collaterale ... – Yukulelix

+2

Ah bene. Un link di ancoraggio si concentrerà se ci si collega ad esso, questo è un comportamento relativo all'accessibilità richiesto per gli screen reader o per la navigazione "solo tastiera". In realtà è normale. Sembra solo che Safari lo mostri solo con l'assistenza di accesso universale su ... Se vuoi nascondere quel pulsante interno fino a quando non si verifica un altro evento, che ne dici di nasconderlo prima con visibilità: nascosto; ? La tua posizione: assoluta; il metodo non sta tecnicamente nascondendo quel pulsante al momento. Solo visibilità: nascosta; o display: nessuno; in realtà lo nasconderà quando focalizzato. cioè un collegamento focalizzato mostrerà sempre il motivo dell'accessibilità. – hexalys

Problemi correlati