如何制作模态全屏?

How to make a modal fullscreen?

我正在尝试制作 bootstrap vue 模态全屏。我应该覆盖哪个 css 类,我想在将使用此模式的组件中以范围样式执行此操作。

您想编辑 .modal-dialog 并强制调整尺寸。

示例CSS:

.modal-dialog {
    max-width: 100%;
    margin: 0;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    height: 100vh;
    display: flex;
}

另外要让它在 vue 中工作。您可以尝试将 class 添加到 b-modal 并尝试这样的事情:

<div>
  <b-button v-b-modal.modal1>Launch demo modal</b-button>

  <!-- Modal Component -->
  <b-modal class="test-modal" id="modal1" title="BootstrapVue">
    <p class="my-4">Hello from modal!</p>
  </b-modal>
</div>

CSS:

.test-modal .modal-dialog {
    max-width: 100%;
    margin: 0;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    height: 100vh;
    display: flex;
    position: fixed;
    z-index: 100000;
}

扩展已接受的答案,要通过将 class 应用于外部模态 div 来在本地应用此答案,您需要使用 modal-class 属性组件,而不是像通常那样给它一个 class。

https://bootstrap-vue.org/docs/components/modal#variants

JS:

<b-modal modal-class="modal-fullscreen">
    ...
</b-modal>

CSS:

.modal-fullscreen .modal-dialog {
    max-width: 100%;
    margin: 0;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    height: 100vh;
    display: flex;
    position: fixed;
    z-index: 100000;
}

如果您不想更改 CSS,您可以在 .modal-dialog 旁边添加 .modal-xl

例如:

<div class="modal-dialog modal-xl" role="document">