37

sto usando Bootstrap 2.3.1 http://twitter.github.io/bootstrap/index.htmlBootstrap gli elenchi a discesa menu che appaiono dietro altri elementi - IE7

Così sto usando il loro 'discesa menu' di classe per creare alcuni menu a discesa uso rapido semplice, ma per qualche motivo su IE7 vengono visualizzati dietro il testo e altri elementi sul mio sito.

test di collegamento:http://leongaban.com/_projects/defakto/CDS/

ho aggiunto z-index al mio CSS, ma ancora non sembra di fare nulla, per favore aiutatemi!

.header .header-nav ul#nav-account ul.dropdown-menu, 
.header .header-nav ul#nav-library ul.dropdown-menu { 
    z-index: 10000; 
} 

IE9, Chrome, FF e altri moderni non browser mal di testa: enter image description here


IE7> :(
enter image description here

HTML

<div class="header-nav"> 

<ul id="nav-account" role="navigation" class="pull-right"> 

    <!-- Language Dropdown Button --> 
    <li id="language-btn"> 
     <a href="#" id="drop1" class="dropdown-toggle" data-toggle="dropdown">English</a> 
     <img src="img/header-small-down-arrow.png" alt="grey triangle"/><!-- <span class="grey_triangle"></span>--> 

     <!-- Language Dropdown Menu--> 
     <ul class="dropdown-menu" role="menu" aria-labelledby="drop1"> 
      <li role="presentation"><a role="menuitem" tabindex="-1" href="#">English</a></li> 
      <li role="presentation"><a role="menuitem" tabindex="-1" href="#">Spanish</a></li> 
      <li role="presentation"><a role="menuitem" tabindex="-1" href="#">German</a></li> 
      <li role="presentation"><a role="menuitem" tabindex="-1" href="#">Japanese</a></li> 
      <li role="presentation"><a role="menuitem" tabindex="-1" href="#">Chinese</a></li> 
     </ul> 
    </li> 

    <!-- User Dropdown Button --> 
    <li id="account-btn"> 
     <a href="#" id="drop2" class="dropdown-toggle" data-toggle="dropdown">Logout</a> 
     <img src="img/header-small-down-arrow.png" alt="grey triangle"/> 
     <!-- <span class="grey_triangle"></span> --> 

     <!-- User Dropdown Menu--> 
     <ul class="dropdown-menu" role="menu" aria-labelledby="drop2"> 
      <li role="presentation"><a role="menuitem" tabindex="-1" href="http://google.com">Logout</a></li> 
      <li role="presentation"><a role="menuitem" tabindex="-1" href="#anotherAction">Account</a></li> 
     </ul> 
    </li> 
</ul> 
+0

Puoi provare '$ ('. Menu a discesa'). AppendTo ($ (" body "));'? Se non funziona, puoi provare un'altra classe .dropdown-menu, ma risolverà il problema, immagino. –

+0

Hmm ha appena provato entrambe le opzioni, il jquery non ha fatto nulla (ma ha interrotto i menu a discesa non IE7) e ho rinominato .dropdown-menu in .dropdown-menu1 e ha ancora lo stesso problema :( –

risposta

65

È un problema stacking context!

Anche se si utilizza z-index nel menu a discesa, è relativo solo agli elementi nello stesso contesto di impilamento. È necessario aggiungere un z-index e un position a un elemento padre per farlo funzionare. In questo caso, consiglierei il header-topdiv

+4

E grazie! Ho aggiunto la posizione: relativo: ad alcuni container div e ha risolto il mio problema :) IE7 e 8 non possono morire abbastanza velocemente ... –

+0

Grazie, ha avuto lo stesso problema con Safari su IOS6. – Rocklan

+1

Grazie per l'indizio: impilabile. Se due elementi si sovrappongono, posizionare la posizione relativa sul genitore. –

15

si può solo noi e z-index su elementi posizionati (relative, fisso/assoluta), in modo da provare aggiungendo:

.header .header-nav ul#nav-account ul.dropdown-menu, 
.header .header-nav ul#nav-library ul.dropdown-menu { 
    position: relative; 
    z-index: 10000; 
} 
4

Se l'aumento dello z-index dell'elemento padre (come menzionato in altre risposte) non ha funzionato per te, potrebbe essere che uno degli elementi padre abbia "overflow: hidden;" Provare a rimuoverlo e vedere se funziona.

+0

Oh uomo, sono rimasto bloccato per un paio d'ore e ho visto la tua risposta. Grazie mille! –

3

Basta eseguire l'overflow come ereditario o visibile.

risolverà il problema.

overflow: visible !important;

ha funzionato per me incredibilmente

+0

ha funzionato per me, grazie mille! – Houve

-1

ho avuto la stessa cosa avviene quando si utilizza

overflow-x: hidden; 

Sulla elemento genitore. Ho dovuto spegnerlo.

Problemi correlati