Ich habe den Code für mein Modal direkt aus dem Bootstrap-Beispiel verwendet und nur die Datei bootstrap.js (und nicht bootstrap-modal.js) eingefügt. Mein Modal wird jedoch unter der grauen Überblendung (Hintergrund) angezeigt und kann nicht bearbeitet werden.
So sieht es aus:
Sehen Sie diese Geige für einen Weg , um dieses Problem zu reproduzieren. Die Grundstruktur dieses Codes sieht folgendermaßen aus:
<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;
}
Irgendwelche Ideen, warum das so ist oder was ich tun kann, um das zu beheben?
javascript
css
twitter-bootstrap
modal-dialog
Natlines
quelle
quelle
overflow-x: hidden
auf den Container des Modals angewendeten verursacht .Antworten:
Wenn der modale Container eine feste oder relative Position hat oder sich innerhalb eines Elements mit fester oder relativer Position befindet, tritt dieses Verhalten auf.
Stellen Sie sicher, dass der modale Container und alle übergeordneten Elemente standardmäßig positioniert sind, um das Problem zu beheben.
Hier sind einige Möglichkeiten, dies zu tun:
</body>
.position:
CSS-Eigenschaften aus dem Modal und seinen Vorfahren entfernen, bis das Problem behoben ist. Dies kann jedoch das Aussehen und die Funktion der Seite ändern.quelle
</body>
undbody
habe keineposition
Stilattribute. Irgendeine andere Idee?Das Problem hat mit der Positionierung der übergeordneten Container zu tun. Sie können Ihr Modal einfach aus diesen Containern "herausziehen", bevor Sie es anzeigen. So geht's, wenn Sie
show
Ihr Modal mit js verwenden:Wenn Sie Modal über Schaltflächen starten, lassen Sie die folgenden Tasten fallen
.modal('show');
und tun Sie Folgendes :Dadurch bleiben alle normalen Funktionen erhalten, sodass Sie das Modal mithilfe einer Schaltfläche anzeigen können.
quelle
$('.modal-dialog').parent().on('show.bs.modal', function(e){ $(e.relatedTarget.attributes['data-target'].value).appendTo('body'); })
Ich habe alle oben angegebenen Optionen ausprobiert, aber mit diesen nicht funktioniert.
Was hat funktioniert: Setzen Sie den Z-Index des .modal-Hintergrunds auf -1.
quelle
z-index: 0;
-1
dass er hinter anderen Elementen auf der Seite angezeigt wird, z. B. Bedienfeldern. Aber3
wenn Sie es so einstellen, dass es über alles außer dem modalen Popup hinausgeht.Stellen Sie außerdem sicher, dass die Versionen von BootStrap css und js identisch sind. Verschiedene Versionen können auch dazu führen, dass Modal im Hintergrund angezeigt wird:
Zum Beispiel:
Schlecht:
Gut:
quelle
Ich bin auch auf dieses Problem gestoßen und keine der Lösungen hat für mich funktioniert, bis ich herausgefunden habe, dass ich eigentlich keinen Hintergrund brauche. Sie können den Hintergrund einfach mit dem folgenden Code entfernen.
Hinweis : Das
data-backdrop
Attribut muss auffalse
( andere Optionen :static
odertrue
) gesetzt werden.quelle
Ich habe es an der Arbeit durch einen hohen z-Indexwert zu dem modalen Fenster geben AFTER es zu öffnen. Z.B:
quelle
Die von @Muhd bereitgestellte Lösung ist der beste Weg, dies zu tun. Wenn Sie jedoch in einer Situation stecken bleiben, in der eine Änderung der Seitenstruktur nicht möglich ist, verwenden Sie diesen Trick:
Der Trick dabei ist
data-backdrop="false" style="background-color: rgba(0, 0, 0, 0.5);"
, den Standardhintergrund zu entfernen und einen Dummy zu erstellen, indem Sie die Hintergrundfarbe des Dialogfelds selbst mit etwas Alpha festlegen.Update 1: Wie von @Gustyn hervorgehoben, schließt das Klicken auf den Hintergrund den Dialog nicht wie erwartet. Um dies zu erreichen, müssen Sie Java-Skriptcode hinzufügen. Hier ist ein Beispiel, wie Sie dies erreichen können.
quelle
A aber spät dran aber hier ist eine generische Lösung -
Besuchen Sie diesen Link - Bootstrap 3 - Modal verschwindet unter dem Hintergrund, wenn Sie eine feste Seitenleiste für Details verwenden.
quelle
Eine andere Möglichkeit, dies zu erreichen, besteht darin, den Z-Index aus der
.modal-backdrop
Datei in bootstrap.css zu entfernen . Dadurch befindet sich der Hintergrund auf dem gleichen Niveau wie der Rest Ihres Körpers (er verblasst immer noch) und Ihr Modal befindet sich oben..modal-backdrop
sieht aus wie dasquelle
Fügen Sie einfach zwei Zeilen CSS hinzu:
Der .modal-Hintergrund sollte einen Wert von 1050 haben, um ihn über der Navigationsleiste festzulegen.
quelle
position: fixed
das nicht.Dies würde alle Modalitäten abdecken, ohne die Animationen oder das erwartete Verhalten durcheinander zu bringen.
quelle
Ich habe einfach eingestellt:
und es funktioniert....
Für die ursprüngliche Frage:
quelle
Verwenden Sie dies in Ihrem Modal:
quelle
Dieses Problem kann häufig auftreten, wenn Dinge wie Farbverläufe in CSS für Dinge wie Hintergründe oder sogar Akkordeon-Header verwendet werden.
Leider ist das Ändern oder Überschreiben des Bootstrap-CSS-Kerns unerwünscht und kann zu unerwünschten Nebenwirkungen führen. Der am wenigsten aufdringliche Ansatz ist das Hinzufügen,
data-backdrop="false"
aber Sie werden möglicherweise feststellen, dass der Überblendungseffekt nicht mehr wie erwartet funktioniert.Nach den letzten Versionen von Bootstrap scheint Version 3.3.5 dieses Problem ohne unerwünschte Nebenwirkungen zu beheben.
Download: https://github.com/twbs/bootstrap/releases/download/v3.3.5/bootstrap-3.3.5-dist.zip
Stellen Sie sicher, dass Sie die CSS- und JavaScript-Dateien aus 3.3.5 einschließen.
quelle
Hallo, ich hatte das gleiche Problem, dann wurde mir klar, dass bei Verwendung von Bootsrap 3.1 im Gegensatz zu älteren Versionen von Bootsrap (2.3.2) die HTML-Struktur des Modals geändert wurde!
Sie müssen Ihren modalen Kopf- und Fußzeilenbereich mit modalem Dialog und modalem Inhalt umschließen
quelle
Keine der oben vorgeschlagenen Lösungen hat bei mir funktioniert, aber diese Technik hat das Problem gelöst:
quelle
Ich hatte dieses Problem und der einfachste Weg, es zu beheben, war das Hinzufügen eines Z-Index größer als 1040 im Modaldialog div:
Ich glaube, Bootstrap erzeugt eine Div-Modal-Hintergrund-Überblendung, in der in meinem Fall der Z-Index 1040 vorhanden ist. Wenn Sie also den Modal-Dialog darüber legen, sollte er nicht mehr grau sein.
quelle
Ich habe eine leichtere und bessere Lösung.
Es könnte leicht durch einige zusätzliche CSS-Stile gelöst werden.
Klasse ausblenden
.modal-backdrop
(automatisch aus Bootstrap.js generiert)Stellen Sie den Hintergrund
.modal
auf ein durchscheinendes schwarzes Hintergrundbild ein.Dies funktioniert am besten, wenn Sie eine Anforderung haben, bei der sich das Modal innerhalb eines Elements und nicht in der Nähe des
</body>
Tags befinden muss.quelle
Setzen Sie den Z-Index .modal auf den höchsten Wert
Zum Beispiel hat .sidebarwrapper einen Z-Index von 1100, setzen Sie also den Z-Index von .modal auf 1101
quelle
In meinem Fall lösen Sie es, fügen Sie dies in meinem Stylesheet hinzu:
Mit Google Debugger können Sie das Element BACKDROP untersuchen und Attribute ändern. Viel Glück.
quelle
in deiner navbar
navbar-fixed-top
brauchenz-index = 1041
und auch wenn dubootstarp-combined.min.css
das auch änderst.navbar-fixed-top, .navbar-fixed-bottom
z-index to 1041
quelle
Ändern Sie die absolute Position in relativ.
quelle
Sie können den Z-Index auch aus dem .modal-Hintergrund entfernen. Das resultierende CSS würde so aussehen.
quelle
Ich habe den modalen Hintergrund entfernt.
Dies ist keine bessere Lösung, funktioniert aber für mich.
quelle
Was ich finde ist das:
In Bootstrap 3.3.0 ist es nicht richtig, aber in Bootstrap 3.3.5 ist es richtig. Wir sehen den Code. 3.3.0:
3.3.5
quelle
Fügen Sie dieses zu Ihren Seiten hinzu. Es funktioniert für mich.
quelle
Ich wurde behoben, indem ich dem DIV-Tag unten einen Stil hinzufügte
Und fügen Sie benutzerdefinierte CSS hinzu
quelle
quelle
Für mich war die einfachste Lösung, mein Modal in einen Wrapper mit einer absoluten Position und einem höheren Z-Index als .modal-Hintergrund zu legen. Da der Modal-Hintergrund (zumindest in meinem Fall) den Z-Index 1050 hat:
quelle
In meinem Fall hatte ich einen Wrapper mit folgendem:
Nur den Z-Index entfernt: 1 und keine Ahnung, warum das Problem behoben wurde. Auch das Entfernen der relativen Position hat es sicher getan, aber ich brauchte es.
quelle