垂直居中modal-lg大小的Bootstrap模态框会使其变小。

4
我使用 modal-lg 类来创建一个大型的弹出框,但是当我使用 this SO answer 来使弹出框垂直居中时,它会使弹出框变小:

enter image description here

这个垂直居中会导致它变小

.modal {
  text-align: center;
}

@media screen and (min-width: 768px) { 
  .modal:before {
    display: inline-block;
    vertical-align: middle;
    content: " ";
    height: 100%;
  }
}

.modal-dialog {
  display: inline-block;
  text-align: left;
  vertical-align: middle;
}

HTML:

<div class="modal fade" id="result-details-modal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
   <div class="modal-dialog modal-lg" role="document">
      <div class="modal-content">
         <div class="modal-header">
            <button type="button" class="close" data-dismiss="modal" aria-label="Close">
          <span aria-hidden="true">&times;</span>
        </button>
            <h4 id="result-details-title" class="modal-title"></h4>
         </div>
         <div class="modal-body">
            ...
         </div>
         <div class="modal-footer">
            <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
            <button type="button" class="btn btn-primary">Save changes</button>
         </div>
      </div>
   </div>
</div>

如何在垂直居中时保持其大小?

我将你的代码复制到 https://codepen.io/jacobgoh101/pen/EgPBYA 上,但模态框没有缩小。你能否检查其他 CSS 属性是否影响了模态框? - Jacob Goh
1个回答

1

使用这个小型的 jQuery 函数,您可以解决模态框因为那个 CSS 导致缩小问题。

代码段

 $(function() {
   function reposition() {
       var modal = $(this),
         dialog = modal.find('.modal-dialog');
       modal.css('display', 'block');

       // Dividing by two centers the modal exactly, but dividing by three 
       // or four works better for larger screens.
       dialog.css("margin-top", Math.max(0, ($(window).height() - dialog.height()) / 2));
       dialog.css("margin-left", Math.max(0, ($(window).width() - dialog.width()) / 2));
     }
     // Reposition when a modal is shown
   $('.modal').on('show.bs.modal', reposition);
   // Reposition when the window is resized
   $(window).on('resize', function() {
     $('.modal:visible').each(reposition);
   });
 });
.center {
  margin-top: 50px;
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/js/bootstrap.min.js"></script>

<div class="center">
  <button data-toggle="modal" data-target="#result-details-modal" class="btn btn-primary center-block">Click Me</button>
</div>

<div class="modal fade" id="result-details-modal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
  <div class="modal-dialog modal-lg" role="document">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
          <span aria-hidden="true">&times;</span>
        </button>
        <h4 id="result-details-title" class="modal-title"></h4>
      </div>
      <div class="modal-body">
        ...
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
        <button type="button" class="btn btn-primary">Save changes</button>
      </div>
    </div>
  </div>
</div>


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接