2012-03-28 23 views
25

Tengo un problema con mi modal de arranque de Twitter: se abre delante de mi formulario. No tengo idea de lo que hice, porque funcionó muy bien hace 3 días. Puedo escribir en el formulario; Creo que la forma está funcionando. El problema es la apertura modal delante del formulario.Twitter bootstrap modal se abre delante del formulario

http://dl.dropbox.com/u/41175751/Screen%20Shot%202012-03-28%20at%2012.04.11.png

+0

Pega un código para que podamos echarle un vistazo. –

+1

Parece un problema de índice z, pero sin código y sin ejemplos es imposible decir –

+0

¡Mi error, ya lo solucioné! gracias –

Respuesta

13

La clase .modal-backdrop ha índice z establecido en 1040 y la navbar-fixed-top tiene índice z se establece en 1030. Por lo tanto, el telón de fondo muestra más de la forma.

Reemplace el valor .modal-backdrop z-index en su archivo CSS configurándolo en un valor que sea menor que el índice z de navbar. Esto resolverá el problema.

+0

Impresionante - me ha ahorrado mucho tiempo. – eandersson

+0

¡3 meses detrás de este problema, y ​​ahora lo resolví por mí! ¡¡¡¡Gracias!!!! – Lvkz

10

Tuve problemas similares. Los he abordado aquí: http://jsfiddle.net/ATeaH/8/

+4

para resumir esta solución, agregue: $ ('. Modal) .appendTo (' body '); a tu script Esto moverá el .modal (donde sea que se haya definido) hasta donde .modal-backdrop es autogenerado por bootstrap, por lo tanto los 2 elementos 'hermanos', que pueden corregir problemas de z-index – rmirabelle

5

Una solución simple que Nielsen ha indicado anteriormente que trabajó para mí ...

tuve la div Adjunto mi modal hacia el interior la barra de navegación. Moví el div fuera de la barra de navegación - justo debajo de <body>

¡Problema resuelto!

0

Tuve un problema similar cuando un modal se estaba insertando en el DOM a través de AJAX. Sin una actualización de página, el modal permanecía detrás de una máscara y era inaccesible.

Curiosamente, el modal funcionó bien con una actualización de página. Aunque estaba insertando el modal en el mismo lugar con AJAX que con HTML, no funcionaría con AJAX. Mi solución fue agregar el modal parcial al cuerpo. Así que mi código es el siguiente:

$('body').append(....j render partial....); 

He intentado algunas de las otras sugerencias que me encontré (como pellizcando la z-index), pero eso no ayudó en mi caso.

0

Tuve este mismo problema. En mi caso fue debido a un div no cerrado en mi encabezado.

0

Pruebe esta solución, que trabajó para mí:

$('#myModal').appendTo("body").modal('show'); 
0

estoy trabajando con AngularJS y corrió en la misma edición. Para aclarar, mi modal estaba en otro archivo HTML que Angular inyecta en el DOM durante el tiempo de ejecución a través del ng-view. Lo que me causó este problema fue que tenía una clase de animación CSS en el div donde estaba mi ng-view. A modo de ejemplo:

<div ng-app="myApp"> 
    <div class="pageTransition" ng-view></div> <!-- problem: class="pageTransition"--> 
</div> 

Extracción de la clase CSS fija el problema y restaurado mi modal hacia el orden normal de trabajo. Una solución al respecto sería reemplazar la clase estándar con Angular's ng-class. De esta forma, puede agregar, modificar o eliminar dinámicamente una clase mientras usa el modal.

0

Añadir lo siguiente a su CSS

.modal-dialog { 
    z-index: 1050; 
} 
0

Si está utilizando SASS puede hacer lo siguiente dentro _modals.scss:

.modal-dialog { 
    position: relative; 
    z-index: $zindex-modal-background; // copy-pasted z-index from .modal-backdrop 
    width: auto; 
    margin: 10px; 
}