讲师中心 微信公众号
AI工具推荐 视频效率加速

如何在Bootstrap中创建全屏遮罩层_通过CSS定位z-index与100vh高度

轻浩酱_8997

轻浩酱_8997

发布时间:2026-04-13 14:43:06

|

570人浏览过

|

来源于php中文网

原创

全屏遮罩层在 Bootstrap 中无法靠 class 自动实现,必须手动写 CSS;因 .modal 非全屏、z-index 易被覆盖、display 依赖 JS 控制,且 .modal-backdrop 为独立节点,故需用 position:fixed+100vh+足够 z-index 手动构建。

如何在bootstrap中创建全屏遮罩层_通过css定位z-index与100vh高度

全屏遮罩层在 Bootstrap 中无法靠 class 自动实现,必须手动写 CSS —— 因为 .modal 默认不占满视口,.position-fixed 缺少高度控制,而 100vh 和 z-index 需要协同生效才能真正“压住全部内容”。

为什么 .modal 不是全屏遮罩层

Bootstrap 的 .modal 是带内边距、固定宽高、居中弹出的对话框,它的 height 由内容撑开,不是 100vh;且默认 z-index 是 1055(v5.3),虽高但若页面有自定义 z-index 的元素(比如顶部导航栏设了 z-index: 1100),遮罩就会失效。

  • .modal 的 display 是 none,需用 JS 触发 show,不能纯 CSS 控制显隐
  • 它依赖 .modal-dialog 包裹,这个容器默认 max-width: 500px,会限制宽度
  • 即使加 h-100 到 .modal,也无法突破父容器(.modal-backdrop 是独立兄弟节点)的定位逻辑

手写全屏遮罩层:关键三步

最简可靠的方式是脱离 .modal,用一个独立 <div> 手动控制: <ul> <li>用 <code>position: fixed 脱离文档流,四边归零:top: 0; right: 0; bottom: 0; left: 0

  • 高度必须用 100vh(不是 100%),否则在嵌套容器里会失效;宽度同理用 100vw
  • z-index 至少设为 1060(高于 Bootstrap 默认 .modal 的 1055),避免被覆盖
  • .fullscreen-overlay {
      position: fixed;
      top: 0;
      right: 0;
      bottom: 0;
      left: 0;
      width: 100vw;
      height: 100vh;
      background-color: rgba(0, 0, 0, 0.7);
      z-index: 1060;
      display: none;
    }
    
    .fullscreen-overlay.show {
      display: block;
    }

    与 Bootstrap 组件共存时的常见坑

    遮罩层常配合下拉菜单、侧边栏或自定义弹窗使用,容易因层级或尺寸错乱导致点击穿透或显示不全:

    VPS Bootstrap
    VPS Bootstrap

    从零启动全新 VPS,完成 OpenClaw 完整部署,包括备份/恢复及恢复后验证。用于 OpenClaw 部署。

    下载

    立即学习“前端免费学习笔记(深入)”;

    • 100vh 在 iOS Safari 中可能包含地址栏高度,导致底部留白 —— 可改用 100dvh(支持 Chrome 105+/Safari 16.4+),降级方案用 JS 动态设 style.height = window.innerHeight + 'px'
    • 若遮罩层内放 .dropdown,需确保其 z-index 高于遮罩(如设 z-index: 1070),否则下拉项会被裁切
    • 用 transform: translateZ(0) 或 will-change: transform 可能意外创建新层叠上下文,使内部元素 z-index 失效,慎加
    • 不要给遮罩层加 overflow: hidden,否则内部滚动内容(如长列表)会不可见

    用 JS 控制显隐比纯 CSS 更可控

    虽然可用 :target 或 checkbox hack 实现纯 CSS 显隐,但在实际项目中几乎都会搭配按钮交互和状态管理,JS 更直接:

    • 用 classList.toggle('show') 控制 .fullscreen-overlay 的显示
    • 监听 Esc 键关闭:document.addEventListener('keydown', e => e.key === 'Escape' && overlay.classList.remove('show'))
    • 点击遮罩层本身关闭时,注意事件委托 —— 直接绑 click 到遮罩层上,别绑到内部子元素再冒泡,避免误关
    • 如果遮罩层里要放表单,记得加 tabindex="-1" 并用 focus() 把焦点锁进遮罩,提升可访问性

    真正难的不是写那几行 CSS,而是判断什么时候该用 100dvh、什么时候要手动同步 z-index 值、以及是否需要拦截 pointer-events 来透传点击 —— 这些都得看具体场景里其他组件的定位策略和层叠上下文。

    热门AI工具

    更多
    PixPix
    PixPix Hot

    PixPix是一款面向电商视觉生产的AI商品图生成工具。

    Seko
    Seko Hot

    一款AI视频创作工具,主要用于商汤科技推出的创编一体的AI短视频创作Agent,适合需要提升相关任务效率的用户。

    墨刀AI
    墨刀AI Hot

    一款AI图像与设计工具,主要用于产品经理的专属智能体,适合需要提升相关任务效率的用户。

    WorkBuddy

    一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

    DeepSeek

    DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

    切问学术

    切问学术是一款AI论文写作工具,复旦大学NLP团队推出的AI学术智能体。

    火山引擎

    火山引擎是一款面向企业的云计算与AI服务平台。

    UP简历
    UP简历 Hot

    一款AI办公效率工具,主要用于基于AI技术的免费在线简历制作工具,适合需要提升相关任务效率的用户。

    豆包大模型

    豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

    相关专题

    更多
    css
    css

    css是层叠样式表,用来表现HTML或XML等文件样式的计算机语言,不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。php中文网还为大家带来html的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

    5236

    2023.06.15

    css居中
    css居中

    css居中:1、通过“margin: 0 auto; text-align: center”实现水平居中;2、通过“display:flex”实现水平居中;3、通过“display:table-cell”和“margin-left”实现居中。本专题为大家提供css居中的相关的文章、下载、课程内容,供大家免费下载体验。

    1117

    2023.07.27

    css如何插入图片
    css如何插入图片

    cssCSS是层叠样式表(Cascading Style Sheets)的缩写。它是一种用于描述网页或应用程序外观和样式的标记语言。CSS可以控制网页的字体、颜色、布局、大小、背景、边框等方面,使得网页的外观更加美观和易于阅读。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

    1998

    2023.07.28

    css超出显示...
    css超出显示...

    在CSS中,当文本内容超出容器的宽度或高度时,可以使用省略号来表示被隐藏的文本内容。本专题为大家提供css超出显示...的相关文章,相关教程,供大家免费体验。

    3986

    2023.08.01

    css字体颜色
    css字体颜色

    CSS中,字体颜色可以通过属性color来设置,用于控制文本的前景色,字体颜色在网页设计中起到很重要的作用,具有以下表现作用:1、提升可读性;2、强调重点信息;3、营造氛围和美感;4、用于呈现品牌标识或与品牌形象相符的风格。

    8265

    2023.08.10

    什么是css
    什么是css

    CSS是层叠样式表(Cascading Style Sheets)的缩写,是一种用于描述网页(或其他基于 XML 的文档)样式与布局的标记语言,CSS的作用和意义如下:1、分离样式和内容;2、页面加载速度优化;3、实现响应式设计;4、确保整个网站的风格和样式保持统一。

    6991

    2023.08.10

    css三角形怎么写
    css三角形怎么写

    CSS可以通过多种方式实现三角形形状,本专题为大家提供css三角形怎么写的相关教程,大家可以免费体验。

    2297

    2023.08.21

    css设置文字颜色
    css设置文字颜色

    CSS(层叠样式表)可以用于设置文字颜色,这样做有以下好处和优势:1、增加网页的可视化效果;2、突出显示某些重要的信息或关键字;3、增强品牌识别度;4、提高网页的可访问性;5、引起不同的情感共鸣。

    3351

    2023.08.22

    Vite 项目如何打包和部署
    Vite 项目如何打包和部署

    Vite项目打包部署专题汇集生产构建、产物预览、输出目录、资源路径、Nginx与GitHub Pages部署及常见白屏和路由404问题的已审核文章,帮助读者完成上线流程。

    60

    2026.10.28

    热门下载

    更多
    网站特效
    /
    网站源码
    /
    网站素材
    /
    前端模板

    精品课程

    更多
    相关推荐
    /
    热门推荐
    /
    最新课程
    Sass 教程
    Sass 教程

    共14课时 | 1.6万人学习

    Bootstrap 5教程
    Bootstrap 5教程

    共46课时 | 6.1万人学习

    CSS教程
    CSS教程

    共754课时 | 99.4万人学习

    关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
    php中文网:公益在线php培训,帮助PHP学习者快速成长!
    关注服务号
    PHP中文网订阅号
    每天精选资源文章推送

    Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn