首页 > 其他分享 >写一个多层弹窗嵌套的布局

写一个多层弹窗嵌套的布局

时间:2024-12-27 09:23:24浏览次数:7  
标签:color 多层 嵌套 弹窗 modal CSS

多层弹窗嵌套的布局在前端开发中可能会显得有些复杂,因为这涉及到层叠上下文(stacking context)的管理,以及z-index的合理使用。以下是一个简单的HTML和CSS示例,展示了如何实现多层弹窗嵌套。

HTML:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>多层弹窗嵌套示例</title>
    <link rel="stylesheet" href="styles.css">
</head>
<body>
    <div class="modal" id="modal1">
        <div class="modal-content">
            <span class="close" onclick="closeModal('modal1')">×</span>
            <p>这是第一层弹窗</p>
            <button onclick="openModal('modal2')">打开第二层弹窗</button>
        </div>
    </div>

    <div class="modal" id="modal2">
        <div class="modal-content">
            <span class="close" onclick="closeModal('modal2')">×</span>
            <p>这是第二层弹窗</p>
            <button onclick="openModal('modal3')">打开第三层弹窗</button>
        </div>
    </div>

    <div class="modal" id="modal3">
        <div class="modal-content">
            <span class="close" onclick="closeModal('modal3')">×</span>
            <p>这是第三层弹窗</p>
        </div>
    </div>

    <button onclick="openModal('modal1')">打开第一层弹窗</button>

    <script src="scripts.js"></script>
</body>
</html>

CSS (styles.css):

.modal {
    display: none;
    position: fixed;
    z-index: 1000;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    overflow: auto;
    background-color: rgba(0, 0, 0, 0.5);
}

.modal-content {
    background-color: #fefefe;
    margin: 15% auto;
    padding: 20px;
    border: 1px solid #888;
    width: 80%;
    position: relative;
}

.close {
    color: #aaa;
    float: right;
    font-size: 28px;
    font-weight: bold;
    cursor: pointer;
}

.close:hover,
.close:focus {
    color: black;
    text-decoration: none;
    cursor: pointer;
}

JavaScript (scripts.js):

function openModal(modalId) {
    document.getElementById(modalId).style.display = "block";
}

function closeModal(modalId) {
    document.getElementById(modalId).style.display = "none";
}

// 当用户点击弹窗以外的区域时,关闭弹窗
window.onclick = function(event) {
    if (event.target.className === "modal") {
        event.target.style.display = "none";
    }
};

这个示例展示了如何使用HTML、CSS和JavaScript来创建一个多层弹窗嵌套的布局。每个弹窗都有一个关闭按钮,以及一个可以打开下一个弹窗的按钮(除了最后一个弹窗)。当用户点击弹窗以外的区域时,弹窗也会关闭。请注意,为了确保弹窗能够正确堆叠,我们在CSS中为.modal类设置了一个较高的z-index值。

标签:color,多层,嵌套,弹窗,modal,CSS
From: https://www.cnblogs.com/ai888/p/18634587

相关文章

  • vue嵌套路由和扁平路由(父、子路由)区别
    在VueRouter中,配置子路由(嵌套路由)与配置全部为父路由(扁平路由)有以下几个主要的区别和影响:vue2中src/router/index.js中配置router路由信息子路由(嵌套路由)组件结构:子路由通常用于创建嵌套的视图结构,例如,在一个页面内嵌套多个组件。父组件可以包含多个子组件,每个子组件都有自己......
  • 配置manage路由,实现嵌套路由
    1、npminstallvue-router引入vue-routermain.ts增加配置importrouterfrom'./routes'createApp(App).use(router)2、src下新建目录routes,新建index.ts//index.tsimport{createRouter,createWebHistory}from'vue-router';//引入Vue组件importHomefrom......
  • 11.1、列表推导式 - 条件推导与嵌套推导
    大家好,我是老邓,今天我们来学习Python中一个非常强大且优雅的工具:列表推导式。列表推导式可以让你用一行代码就完成复杂的列表操作,大大提高代码效率和可读性。一、条件推导在创建列表时,我们常常需要根据某些条件筛选元素。使用传统的for循环,代码可能会比较冗长。列表推导......
  • 用pandas导入含嵌套字典的json文件至mysql数据库
    需要导入的文件格式如下,要把data-diff数组里的所有元素导进去,对于某些json文件还需要添加日期字段。{"rc":0, "rt":6, "data":{ "total":197, "diff":[ { "f1":1, "f2":295.5, "f3":{"f4":......
  • 详解js柯里化原理及用法,探究柯里化在Redux Selector 的场景模拟、构建复杂的数据流管
    目录详解js柯里化原理及用法,探究柯里化在ReduxSelector的场景模拟、构建复杂的数据流管道、优化深度嵌套函数中的精妙应用一、什么是柯里化?1、原理解析2、一个直观的例子二、如何实现柯里化?1、底层实现2、工作原理解析3、测试我们的实现三、柯里化的优点1.参数复......
  • mybatis映射集合,嵌套查询
    publicinterfacePhoneMapper{  List<String>queryPhoneNameByIds(StringuserId);}<selectid="queryPhoneNameByIds"resultType="String">  SELECTp.phone_name  FROMphonep  WHEREp.user_id=#{userId}</selec......
  • SAP ABAP 标准程序增强报弹窗消息方法
    CALL METHOD cl_message_mm=>create                EXPORTING                  im_msgid    = 'ZZMESSAGE'  "se91                  im_msgty    = 'E'                 "       ......
  • 自定义多层级zip解压工具
    自定义多层级zip解压工具前言项目中偶然需要,希望能处理嵌套的压缩包,但是又不希望把文件解压处理。原本不希望重复造轮子,但没有发现很好用的现成案例,就简单处理了一下。正文java做zip解压一般使用ZipFile​或者ZipInputStream​。在实际使用中,遇到了zip清单属......
  • 使用HTML5制作一个多层的生日蛋糕
    要使用HTML5制作一个多层的生日蛋糕,你主要需要使用HTML结构来定义蛋糕的层次,CSS来添加样式和动画效果,以及可能还需要JavaScript来增强交互性。以下是一个简单的示例,展示了如何使用HTML和CSS创建一个基本的多层生日蛋糕:<!DOCTYPEhtml><htmllang="en"><head><metacharset="UT......
  • 写一个方法,点击任意除弹窗外的位置关闭当前弹窗
    在前端开发中,要实现点击任意除弹窗外的位置关闭当前弹窗的功能,通常可以采用以下步骤:为弹窗和遮罩层添加标记:通常,弹窗会有一个特定的类名或ID,以便于识别和操作。同时,你可能需要一个全屏的遮罩层,它位于弹窗之下,用于捕捉点击事件。为遮罩层添加点击事件监听器:当用户点击遮罩层时,触......