CSS实现模态框

摘要:纯CSS,利用:target 不使用bootstrop

实例如下:

<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>ModalBox-Tutorial</title>
    <style>
        /* 模态框初始状态 */
.modalbox {
    font-family: Arial, Helvetica, sans-serif;
    /* 通过 position 让遮罩层撑满整个屏幕 */
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    /* 遮罩层背景色为黑色 */
    background: #000;
    /* 给 z-index 一个过大的值,确保遮罩层”真的遮盖住了“模态框背后的元素 */
    z-index: 99999;
    /* 设置 opacity 为 0,用于隐藏模态框 */
    opacity: 0;
    /* 一些过渡效果 */
    -webkit-transition: opacity 400ms ease-in;
    -moz-transition: opacity 400ms ease-in;
    transition: opacity 400ms ease-in;
    /* pointer-events 鼠标事件“穿透”该元素并且指定该元素“下面”的任何东西 */
    /* 请参阅:https://developer.mozilla.org/zh-CN/docs/Web/CSS/pointer-events */
    pointer-events: none;
}

/* 模态框显示状态 */
.modalbox:target {
    /* 不透明为 0.8 */
    opacity: 0.8;
    /* 与 pointer-events 属性未指定时的表现效果相同 */
    /* 请参阅:https://developer.mozilla.org/zh-CN/docs/Web/CSS/pointer-events */
    pointer-events: auto;
}

/* 模态框内容,你也可以自定义 */
.modalbox-dialog {
    width: 400px;
    position: relative;
    margin: 10% auto;
    padding: 5px 20px 13px 20px;
    border-radius: 10px;
    background: #fff;
}
    </style>
</head>

<body>

    <!-- 1. 模态框的显示按钮,通常用于显示指定的模态框 -->
    <a href="#my-modal-box">显示模态框</a>

    <!-- 2. 模态框容器的根节点,它通常会显示为一个透明的遮罩覆盖全屏 -->
    <div id="my-modal-box" class="modalbox">

        <!-- 3. 模态框内容的跟节点,它通常是一个非透明的容器,用于展示具体内容 -->
        <div class="modalbox-dialog">

            <!-- 4. 模态框的关闭按钮,通常用于关闭模态框 -->
            <a href="#close" title="关闭" class="modalbox-close-btn">X</a>

            <!-- 5. 你的自定义内容,纯文字、表单、提示信息等 -->
            <h2>ModalBox Tutorial</h2>
            <p>这是一个使用 HTML5 和 CSS3 构建的模态框</p>
            <p>你可以将它加入到 Web APP 中的许多交互中,如:登录/注册、操作反馈、提示信息等。</p>

        </div>

    </div>

</body>

</html>
评论