Der sauberste und einfachste Weg, dies zu tun, ist die Verwendung von Flexbox! Das Folgende richtet ein Bootstrap 3-Modal vertikal in der Mitte des Bildschirms aus und ist so viel sauberer und einfacher als alle anderen hier veröffentlichten Lösungen:
body.modal-open .modal.in {
display: flex !important;
align-items: center;
}
HINWEIS: Dies ist zwar die einfachste Lösung, funktioniert jedoch aufgrund der Browserunterstützung möglicherweise nicht für alle Benutzer: http://caniuse.com/#feat=flexbox
Es sieht so aus, als ob (wie üblich) der IE hinterherhinkt. In meinem Fall sind alle Produkte, die ich für mich selbst oder für Kunden entwickle, IE10 +. (Aus geschäftlicher Sicht ist es nicht sinnvoll, Entwicklungszeit für die Unterstützung älterer IE-Versionen zu investieren, wenn damit das Produkt tatsächlich entwickelt und der MVP schneller veröffentlicht werden kann.) Dies ist sicherlich kein Luxus, den jeder hat.
Ich habe gesehen, dass größere Websites erkennen, ob Flexbox unterstützt wird oder nicht, und eine Klasse auf den Hauptteil der Seite anwenden. Diese Stufe des Front-End-Engineerings ist jedoch ziemlich robust, und Sie benötigen immer noch einen Fallback.
Ich würde die Menschen ermutigen, die Zukunft des Webs anzunehmen. Flexbox ist fantastisch und Sie sollten es verwenden, wenn Sie können.
PS - Diese Seite hat mir wirklich geholfen, die Flexbox als Ganzes zu erfassen und auf jeden Anwendungsfall anzuwenden: http://flexboxfroggy.com/
BEARBEITEN: Bei zwei Modalen auf einer Seite sollte dies für .modal.in gelten
.modal.fade.in
und