In IE 6 il controllo di selezione (casella combinata) viene visualizzato nella parte superiore dei menu. Ho controllato alcuni menu Javascript, mmmenu, ma tutti stanno entrando in controllo di selezione. Non è risolvibile assegnando Z-Index. C'è un'altra soluzione.IE 6 seleziona i controlli (casella combinata) tramite il menu
risposta
Questo è un bug noto con IE6 con il tentativo di posizionare in modo assoluto i div in cima ai controlli selezionati.
Esistono soluzioni alternative che includono gli shim iframe, ma non c'è una buona risposta. La risposta dello shim iframe è posizionare un iframe al di sotto di qualsiasi div che stai cercando di posizionare sopra una selezione, con iframe della stessa dimensione. Sfortunatamente, questo è un enorme rompicoglioni.
Suggerisco di utilizzare un sistema di menu javascript che utilizza già gli shim iframe, ad esempio YUI menus (e presumo jQuery).
Il problema è che SELECT sono elementi "windowed" in IE6 e il loro z-index è sopra tutti gli altri componenti non "windowed". Se devi assolutamente avere qualcosa sopra una combox, potresti volerlo mettere dentro un altro componente con finestra, come un IFRAME, e impostare lo z-index del componente su un valore superiore a quello della casella combinata.
Devo ammettere, questa non è una soluzione carina.
La maggior parte delle principali librerie javascript è facile da implementare soluzioni a questo problema. Usiamo jQuery e il bgiframe plugin è molto facile da usare e risolve il problema.
Daniel ha decisamente ragione. Questo è un problema brutto.
Tuttavia, potrebbe esserci un'altra soluzione. Se si utilizzano menu a più livelli che si aprono e si chiudono, è possibile scrivere codice JavaScript che nasconde letteralmente gli elementi SELEZIONATI problematici quando viene aperto il popup (stile l'elemento per avere una visibilità di nascosto). Quindi, quando il menu si chiude, è possibile visualizzare lo stesso controllo SELECT.
Quindi basta scrivere codice che rileva quali oggetti SELECT interferiscono con un particolare menu prima che si apra. Non è un codice banale, ma è sicuramente possibile scrivere. Quindi vorrei solo avvolgere l'intera porzione di codice in un condizionale che controlla se l'utente è su IE in quanto non è necessario eseguirlo su Firefox o Safari.
@jonstjohn - Fantastico! Questo ha funzionato molto bene - l'unico problema rimasto con l'utilizzo del plugin bgiframe è che il bordo del DIV che ho ancora viene sovrapposto dagli elenchi a discesa. Quindi la parte principale del DIV mostra la parte superiore dei menu a discesa, ma il bordo nero (CSS - border: 2 px solid #cecece;) appare ancora sotto i menu a discesa. Ti sei mai imbattuto in questo? –
Oops - Non importa. Ho RTFM e ho visto gli offset "top", "left", ecc. –
Sembra "Top", "Left", ecc. Non fare nulla. –