首先创建HTML结构,包括按钮、遮罩层和模态框;接着用CSS设置遮罩层覆盖全屏并隐藏显示,模态框居中;最后通过J*aScript控制display属性实现显隐交互,点击按钮或遮罩区域可开关模态框。

制作一个简单的模态框(Modal)是CSS初级项目中常见的练习,关键在于理解如何使用 overlay(遮罩层) 和 display 属性控制显隐。下面一步步说明实现方法。
先构建模态框的基本HTML结构,包括触发按钮、模态框本身和遮罩层(overlay)。
<!-- 触发按钮 --> <button id="openModal">打开模态框</button> <p><!-- 遮罩层和模态框容器 --> <div class="modal-overlay" id="modalOverlay"> <div class="modal"> <h3>这是模态框标题</h3> <p>这里是模态框内容。</p> <button id="closeModal">关闭</button> </div> </div></p>
使用CSS设置模态框和遮罩层的样式,确保遮罩层覆盖整个视口,模态框居中显示。
语鲸
AI智能阅读辅助工具
314
查看详情
/* 默认隐藏遮罩层 */
.modal-overlay {
display: none;
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.5);
justify-content: center;
align-items: center;
z-index: 1000;
}
<p>/<em> 模态框样式 </em>/
.modal {
background: white;
padding: 20px;
border-radius: 8px;
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
text-align: center;
width: 300px;
}</p>通过J*aScript操作 display 属性来控制模态框的出现和关闭。
const modalOverlay = document.getElementById("modalOverlay");
const openBtn = document.getElementById("openModal");
const closeBtn = document.getElementById("closeModal");
<p>// 点击按钮显示模态框
openBtn.addEventListener("click", () => {
modalOverlay.style.display = "flex"; // 使用 flex 居中
});</p><p>// 点击关闭按钮隐藏
closeBtn.addEventListener("click", () => {
modalOverlay.style.display = "none";
});</p><p>// 可选:点击遮罩层外部关闭
modalOverlay.addEventListener("click", (e) => {
if (e.target === modalOverlay) {
modalOverlay.style.display = "none";
}
});</p>position: fixed 覆盖整个屏幕,背景半透明增强视觉层次。display: flex 显示并居中内容。style.display 控制显隐。基本上就这些。结构清晰、样式简单、交互明确,适合初学者掌握模态框的核心原理。
以上就是如何在CSS初级项目中制作简单模态框_overlay与display控制的详细内容,更多请关注其它相关文章!
相关文章:
必由学官网快捷入口 必由学网页版在线学习平台
MAC怎么安装Homebrew包管理器_MAC为开发者和高级用户安装命令行工具
在J*a里如何理解依赖关系的方向_依赖方向在模块结构中的作用
魅族20怎样在浏览器开无图省流_iPhone魅族20浏览器开无图省流【流量节省】
Go语言HTML解析:利用Goquery精准获取指定元素内容
b站如何看历史记录_b站观看历史找回方法
c++中的std::launder有什么实际用途_c++对象生命周期与指针优化
steam官方网页快速访问 steam账号注册全流程
html怎么运行外部js文件中的函数_运html外js文件函数法【技巧】
c++中的std::forward_list和std::list有什么不同_c++ forward_list与list区别分析
HTML5原生日期选择器与jQuery UI:实现日期选择器的联动与程序化控制
Golang如何实现Web文件静态资源服务器_Golang静态资源服务器开发与实践
内存疯狂猛猛涨价:主板销量直接腰斩!
Yandex免登录网页版地址 Yandex搜索引擎官方访问入口
漫蛙2网页版漫画入口 漫蛙漫画在线官方登录
深入理解与实现最大堆的Heapify过程:常见错误与修正
绝地鸭卫平a核爆刀流玩法攻略
J*a里如何使用N*igableMap进行导航操作_可导航Map操作技巧解析
处理动态列数据:J*a ArrayList的正确初始化与字符累加教程
C++如何跨平台操作文件和目录_C++17标准库std::filesystem的使用教程
sublime如何配置Go语言开发环境_sublime搭建Golang编译运行系统
将JSON对象数组转置为键值对列表的实用指南
如何提高微信支付的安全性_微信支付安全防护与设置建议
快手网页版在线登录 快手网页版官网入口快速访问
在J*a中如何实现对象克隆避免共享数据_对象克隆安全实践指南
CSS图片焦点样式实现教程:理解与应用tabindex属性
Node.js中HTML按钮与J*aScript函数交互的正确姿势
“音游” × “怪文书” 题材的节奏冒险游戏 《晕晕电波症候群》确定于2026年4月发售!
在J*a中如何开发简易仓库管理与库存统计_仓库管理库存统计项目实战解析
夸克浏览器图书入口 夸克手机浏览器阅读入口
搜狗浏览器如何使用密码生成器创建强密码 搜狗浏览器内置密码安全工具
自动化J*a应用中GitHub CLI或REST API的认证与交互
React/Next.js中实现列表项的动态移动与状态管理:兼论唯一键的重要性
PyTorch模型训练效果不佳?深入剖析常见错误与调试技巧
铁路12306改签能改到更早的车次吗_铁路12306改签提前车次规则
必由学官方登录入口 必由学教师学生账号快速访问
J*aScript数组对象转换:按指定键分组与值收集
qq游戏网页版直接玩_qq游戏免下载快速入口
qq邮箱日历功能怎么用_创建日程与会议邀请的技巧
抖音小游戏合成大西瓜免费秒玩入口链接 抖音小游戏热门合集秒玩网站
12306选座怎么选到特殊座位_12306特殊座位选择注意事项
Win11怎么开启高性能模式_Windows 11电源计划优化设置
如何优雅地扩展SprykerGlue后端API授权逻辑,使用spryker/glue-backend-api-application-authorization-connector-extension
WordPress插件开发:正确注册卸载钩子与避免常见陷阱
Lar*el 中按“Has One Of Many”关联模型排序的最佳实践
Win11怎么设置开机NumLock亮 Win11修改注册表InitialKeyboardIndicators值
漫蛙漫画登录站点 漫蛙2正版漫画快速访问
邮政快递单号查询入口 邮政快递物流信息在线查询入口
响应式容器内容自动缩放与宽高比维持教程
解决 Express.js 中 PUT 请求密码修改失败的路由配置指南