J'ai utilisé le code pour mon modal directement à partir de l'exemple Bootstrap, et n'ai inclus que le bootstrap.js (et non bootstrap-modal.js). Cependant, mon modal apparaît sous le fondu gris (toile de fond) et n'est pas modifiable.
Voici à quoi ça ressemble:
Voir ce violon pour une façon de reproduire ce problème. La structure de base de ce code est la suivante:
<body>
<p>Lorem ipsum dolor sit amet.</p>
<div class="my-module">
This container contains the modal code.
<div class="modal fade">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-body">Modal</div>
</div>
</div>
</div>
</div>
</body>
body {
padding-top: 50px;
}
.my-module {
position: fixed;
top: 0;
left: 0;
}
Des idées pourquoi c'est ou ce que je peux faire pour résoudre ce problème?
javascript
css
twitter-bootstrap
modal-dialog
natlines
la source
la source
overflow-x: hidden
appliqué au conteneur du modal.Réponses:
Si le conteneur modal a une position fixe ou relative ou se trouve dans un élément avec une position fixe ou relative, ce problème se produit.
Assurez-vous que le conteneur modal et tous ses éléments parents sont positionnés par défaut pour résoudre le problème.
Voici quelques façons de procéder:
</body>
.position:
propriétés CSS du modal et de ses ancêtres jusqu'à ce que le problème disparaisse. Cependant, cela pourrait changer l'apparence et le fonctionnement de la page.la source
</body>
etbody
n'ai aucunposition
attribut de style. Une autre idée?Le problème est lié au positionnement des conteneurs parents. Vous pouvez facilement "déplacer" votre modal hors de ces conteneurs avant de l'afficher. Voici comment le faire si vous
show
utilisiez votre modal avec js:Ou, si vous lancez modal à l'aide des boutons, déposez le
.modal('show');
et faites simplement:Cela gardera toutes les fonctionnalités normales, vous permettant d'afficher le modal à l'aide d'un bouton.
la source
$('.modal-dialog').parent().on('show.bs.modal', function(e){ $(e.relatedTarget.attributes['data-target'].value).appendTo('body'); })
J'ai essayé toutes les options fournies ci-dessus, mais je ne l'ai pas fait fonctionner avec celles-ci.
Ce qui a fonctionné: définir le z-index du .modal-backdrop sur -1.
la source
z-index: 0;
-1
, elle apparaîtra derrière d' autres éléments de la page, tels que des panneaux. Mais le régler pour le3
faire au-dessus de tout, sauf le popup modal.Assurez-vous également que les versions de BootStrap css et js sont les mêmes. Différentes versions peuvent également faire apparaître le modal en arrière-plan:
Par exemple:
Mauvais:
Bien:
la source
J'ai également rencontré ce problème et aucune des solutions n'a fonctionné pour moi jusqu'à ce que je comprenne que je n'ai en fait pas besoin de toile de fond. Vous pouvez facilement supprimer la toile de fond avec le code suivant.
Remarque : l'
data-backdrop
attribut doit être défini surfalse
( autres options :static
outrue
).la source
Je l'ai fait fonctionner en donnant une valeur d'index z élevée à la fenêtre modale APRÈS l' ouvrir. Par exemple:
la source
La solution fournie par @Muhd est la meilleure façon de le faire. Mais si vous êtes coincé dans une situation où changer la structure de la page n'est pas une option, utilisez cette astuce:
L'astuce ici consiste
data-backdrop="false" style="background-color: rgba(0, 0, 0, 0.5);"
à supprimer le fond par défaut et à en créer un factice en définissant la couleur d'arrière-plan de la boîte de dialogue elle-même avec un peu d'alpha.Mise à jour 1: Comme l'a souligné @Gustyn, cliquer sur l'arrière-plan ne ferme pas la boîte de dialogue comme prévu. Donc, pour y parvenir, vous devez ajouter du code de script java. Voici un exemple de la façon dont vous pouvez y parvenir.
la source
A mais en retard, mais voici une solution générique -
Visitez ce lien - Bootstrap 3 - la disparition du modal sous la toile de fond lors de l'utilisation d'une barre latérale fixe pour plus de détails.
la source
Une autre façon de procéder consiste à supprimer le z-index du
.modal-backdrop
fichier bootstrap.css. Cela fera en sorte que la toile de fond soit au même niveau que le reste de votre corps (elle s'effacera toujours) et que votre modal soit au sommet..modal-backdrop
ressemble à çala source
Ajoutez simplement deux lignes de CSS:
Le .modal-backdrop devrait avoir une valeur de 1050 pour le placer sur la barre de navigation.
la source
position: fixed
cela ne fonctionnera pas.Cela couvrirait tous les modaux sans gâcher aucune des animations ou du comportement attendu.
la source
J'ai simplement défini:
et il fonctionne....
Pour la question d'origine:
la source
Utilisez ceci dans votre modal:
la source
Ce problème peut souvent être rencontré lors de l'utilisation d'éléments tels que les dégradés en CSS pour des éléments tels que les arrière-plans ou même les en-têtes d'accordéon.
Malheureusement, la modification ou la substitution du CSS Bootstrap de base n'est pas souhaitable et peut entraîner des effets secondaires indésirables. L'approche la moins intrusive est d'ajouter,
data-backdrop="false"
mais vous remarquerez peut-être que l'effet de fondu ne fonctionne plus comme prévu.Après avoir suivi les dernières versions de Bootstrap, la version 3.3.5 semble résoudre ce problème sans effets secondaires indésirables.
Téléchargement: https://github.com/twbs/bootstrap/releases/download/v3.3.5/bootstrap-3.3.5-dist.zip
Assurez-vous d'inclure les fichiers CSS et les fichiers JavaScript de 3.3.5.
la source
Salut, j'ai eu le même problème alors je me rends compte que lorsque vous utilisez bootsrap 3.1 Contrairement aux anciennes versions de bootsrap (2.3.2), la structure html du modal a été modifiée!
vous devez envelopper votre corps et pied de page d'en-tête modal avec modal-dialog et modal-content
la source
aucune des solutions suggérées ci-dessus n'a fonctionné pour moi, mais cette technique a résolu le problème:
la source
J'ai eu ce problème et le moyen le plus simple de le résoudre était addind z-index supérieur à 1040 sur la division modal-dialog:
Je crois que le bootstrap crée un fondu de fond modal div dans lequel, dans mon cas, a le z-index 1040, donc si vous mettez la boîte de dialogue modale au-dessus de cela, elle ne devrait plus être grisée.
la source
J'ai une solution plus légère et meilleure ..
Il pourrait être facilement résolu grâce à certains styles CSS supplémentaires.
masquer la classe
.modal-backdrop
(généré automatiquement à partir de Bootstrap.js)définir l'arrière-plan d'
.modal
une image de fond noir translucide.Cela fonctionnera mieux si vous avez une exigence qui nécessite que le modal soit à l'intérieur d'un élément et non près de la
</body>
balise.la source
définissez le z-index .modal sur une valeur la plus élevée
Par exemple, .sidebarwrapper a un z-index de 1100, donc définissez le z-index de .modal sur 1101
la source
Dans mon cas, résolvez-le, ajoutez ceci dans ma feuille de style:
avec le débogueur Google, peut examiner l'élément BACKDROP et modifier les attributs. Bonne chance.
la source
dans votre
navbar-fixed-top
besoin navbarz-index = 1041
et aussi si vous utilisezbootstarp-combined.min.css
également le changement.navbar-fixed-top, .navbar-fixed-bottom
z-index to 1041
la source
Modifiez la position absolue en relative.
la source
Vous pouvez également supprimer le z-index de .modal-backdrop. Le CSS résultant ressemblerait à ceci.
la source
J'ai supprimé le fond modal.
Ce n'est pas une meilleure solution, mais ça marche pour moi.
la source
ce que je trouve c'est que:
dans bootstrap 3.3.0 ce n'est pas bien, mais quand dans bootstrap 3.3.5 c'est right.let's voir le code. 3.3.0:
3.3.5
la source
Ajoutez celui-ci à vos pages. Ça marche pour moi.
la source
J'ai été corrigé en ajoutant un style ci-dessous à la balise DIV
Et ajoutez un css personnalisé
la source
la source
Pour moi, la solution la plus simple était de mettre mon modal dans un wrapper avec une position absolue et un index z supérieur à .modal-backdrop. Depuis le fond modal (au moins dans mon cas) a le z-index 1050:
la source
Dans mon cas, j'avais un emballage avec les éléments suivants:
Seul le z-index a été supprimé: 1 et je n'ai aucune idée de la raison pour laquelle le problème a été résolu. aussi à coup sûr la suppression de la position relative l'a fait mais j'en avais besoin.
la source