4

I use modal-lg class for a large modal but when I use this SO answer to vertically center my modal it makes the modal small:

enter image description here

this vertical centering causes it to be small

.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>

How do I keep it large when it is vertically centered?

Community
  • 1
  • 1
BeniaminoBaggins
  • 11,202
  • 41
  • 152
  • 287
  • i copy your code to https://codepen.io/jacobgoh101/pen/EgPBYA and the modal does not shrink. can you check whether other css properties are affecting the modal ? – Jacob Goh Sep 14 '16 at 06:11

1 Answers1

1

Using this little jQuery function you can do this, if that CSS is causing shrinking issue for your modal box.

Code Snippet

 $(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>
vivekkupadhyay
  • 2,851
  • 1
  • 22
  • 35