猿问

如何删除此 Bootstrap 4 模式右侧的多余空间?

这是小提琴: https: //jsfiddle.net/apo5u0mt/


这是代码:


超文本标记语言


<div class="modal" id="galleryModal">

  <div class="modal-dialog modal-dialog-centered modal-dialog-scrollable modal-xl">

    <div class="modal-content">

      <div class="gallery">

        <div class="gallery-item">

          <img src="https://preview.ibb.co/kPE1D6/clouds.jpg">

        </div>

        <div class="gallery-item">

          <img src="https://preview.ibb.co/mwsA6R/img7.jpg">

        </div>

        <div class="gallery-item">

          <img src="https://preview.ibb.co/kZGsLm/img8.jpg">

        </div>

      </div>

    </div>

  </div>

</div>


<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#galleryModal">

Modal

</button>

CSS


.gallery {

  overflow-y: auto !important;

}


.gallery-item {

  margin: 5px;

  float: left;

}


.gallery-item img {

  height: 150px;

  width: 200px;

  object-fit: cover;

}


.btn {

  margin: 5px;

}

模态框的右侧有一些额外的空间。我不想要那个空间。我希望模态适合内容,即图像。我已经盯着这个太久了,非常感谢任何帮助。


青春有我
浏览 133回答 1
1回答

慕姐4208626

Bootstrap 正在这样做:.modal-dialog {&nbsp; max-width: 500px;}该.modal-dialog元素是块元素,因此默认情况下希望宽度为 100%,但 Bootstrap 的样式将其宽度保持为 500px。您明确将每张图像的宽度设置为 200 像素,这(暂时忽略边距)仅加起来为 400 像素。两个可能的修复方法是:1. 在这里重写 Bootstrap 的模态样式,将模态限制为更窄的宽度:/*&nbsp; The value below is empirically tested,&nbsp; allows for your given margins & floating. I originally expected it to be&nbsp; 420px = (200px width + 5px left margin + 5px right margin) * 2&nbsp; but 422px was necessary to avoid wrapping when tested in jsfiddle*/.modal-dialog {&nbsp; max-width: 422px;}https://jsfiddle.net/nftj9s7y/1/如果图像的宽度恰好为 200 像素很重要,那么这就是您的解决方案。然而,这对我来说似乎是一个脆弱的解决方案 - 如果您决定更改图像宽度,它就会崩溃,并且可能无法在较小的屏幕尺寸下工作。更灵活的解决方案是:2.使用flexbox让图像扩展以填充模态框.gallery {&nbsp; display: flex;&nbsp; flex-wrap: wrap;&nbsp; padding: 5px;}/* now that the parent element is display: flex, we don't need floats anymore */.gallery-item {&nbsp; padding: 5px;&nbsp; width: 50%;}.gallery-item img {&nbsp; height: 150px;&nbsp; object-fit: cover;&nbsp; width: 100%; /* allow image to fill width of containing element */}https://jsfiddle.net/vzs98n6b/2/最后一点,除非您在该元素上指定或,.gallery { overflow-y: auto }否则不会有任何效果。heightmax-height
随时随地看视频慕课网APP

相关分类

Go
我要回答