Bootstrap v5.1 模态不会从 <body> 中删除滚动

Posted

技术标签:

【中文标题】Bootstrap v5.1 模态不会从 <body> 中删除滚动【英文标题】:Bootstrap v5.1 modal don't remove scroll from the <body> 【发布时间】:2022-01-15 19:41:47 【问题描述】:

我在 Angular 11 中有一个项目,我使用 Bootstrap(v5.1.3)。我正在尝试单击一张卡片(就好像它是一篇博客文章一样)以打开一个引导模式并显示文章的内容。 这是我的 Angular 组件的 html

<div class="container">
  <!--Card-->
  <div class="card" style="width: 18rem" *ngFor="let post of posts">
    <a class="cardLink" data-bs-toggle="modal" data-bs-target="#postsModal" (click)="onLoadModal(post.idPost)">
      <img class="card-img-top" src="../../assets/buckupimg.webp"  loading="lazy" />
      <div class="card-body">
        <h5 class="card-title"> post.title </h5>
        <div>
          <p class="align-left card-text">Autor:  post.id_user.username </p>
          <p class="align-right card-text">Visitas:  post.views </p>
        </div>
      </div>
    </a>
  </div>
</div>
<!--Modal-->
<div class="modal fade" id="postsModal" tabindex="-1" aria-labelledby="postsModal" aria-hidden="true">
  <div class="modal-dialog modal-xl modal-dialog-centered modal-dialog-scrollable">
    <div class="modal-content">
      <div class="modal-header">
        <h5 class="modal-title" id="postsModalTitle">postContent.title</h5>
        <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
      </div>
      <div class="modal-body">
        <img src="../../assets/buckupimg.webp" >
        <p>postContent.content</p>
      </div>
      <div class="modal-footer">
        <p>Views: postContent.views</p>
        <p>Autor: postContent.id_user.username</p>
      </div>
    </div>
  </div>
</div>

根据最新版本的 Bootstrap (v5.1.3) 的文档,在显示模式时应该移除滚动。 modal 像卡片一样正确显示,但是当打开 modal 时,它会在 17px 的右侧引入一个填充,并且不会阻塞滚动...为什么它不起作用?

【问题讨论】:

【参考方案1】:

我解决了这个问题,删除了我的通用 styles.css 中的这一行:

html  
overflow-x: hidden; 

也许是因为这个输入与一些默认的引导风格相冲突,使这个工作正常。

【讨论】:

【参考方案2】:

使用自定义 CSS:

body 
  overflow-y: hidden; /* Hide vertical scrollbar */
  overflow-x: hidden; /* Hide horizontal scrollbar */

【讨论】:

感谢您的回答。但不幸的是,这对我不起作用。使用元素检查器,我看到打开模式时已经应用了溢出:隐藏。 imgur.com/rTHcjt9

以上是关于Bootstrap v5.1 模态不会从 <body> 中删除滚动的主要内容,如果未能解决你的问题,请参考以下文章

bootstrap中modal框数据不清空,怎么解决

Bootstrap 4:使用多个时无法关闭模态

bootstrap 3 模态,cropperjs

从 iframe 内部关闭 Bootstrap 模态并转到父页面的特定部分

如何从 Bootstrap 的模态形式发布数据?

Twitter Bootstrap 模态背景不会覆盖 iPad 上的整个屏幕