HTML/CSS学习总结

一、模态框modal

1、简介

模态框(Modal)是一种用户界面元素,通常用于显示弹出式对话框或窗口,覆盖在应用程序的主界面之上。它在显示内容的同时阻止用户与应用程序的其他部分进行交互,直到用户关闭模态框为止。

2、用途

  • 用户提示和通知: 模态框可用于显示警告、成功消息、错误信息等。
  • 表单交互: 在模态框中显示表单,让用户填写或编辑信息。
  • 确认对话框: 用于确认某个操作,例如删除确认框。
  • 图像或媒体展示: 展示大图、视频或其他媒体内容。
  • 登录/注册窗口: 提供用户登录或注册的界面。

3、功能

  • 阻止交互: 模态框弹出时,通常会阻止用户与主应用程序的其他部分进行交互,使用户专注于模态框的内容。
  • 动画效果: 可以通过CSS或JavaScript添加动画效果,使模态框的显示和隐藏更加平滑。
  • 关闭按钮: 通常模态框内有关闭按钮,以便用户手动关闭模态框。
  • 事件触发: 模态框的显示和隐藏通常是由特定事件触发的,例如点击按钮、链接或定时器。
  • 响应式设计: 可以通过CSS媒体查询等技术,使模态框适应不同屏幕大小。

4、结构

一个简单的模态框通常包括以下几个部分:

  • 触发按钮: 启动模态框的按钮,可以是一个按钮、链接或其他可点击的元素。
  • 模态框容器: 包含模态框内容的容器,通常位于页面的中心。
  • 内容区域: 显示具体内容的区域,可以是文本、表单、图像等。
  • 关闭按钮: 允许用户手动关闭模态框的按钮,通常位于模态框的右上角。

5、属性

  • display: 控制模态框的显示和隐藏状态,通常使用CSS的display属性。
  • position: 设置模态框的定位方式,通常使用CSS的position属性。
  • z-index: 控制模态框在层叠上下文中的堆叠顺序,确保模态框位于其他元素之上。
  • 动画效果: 可以通过CSS的过渡或动画效果实现模态框的平滑显示和隐藏。
  • 事件监听器: 使用JavaScript添加事件监听器,例如点击按钮触发显示模态框,点击关闭按钮或覆盖层触发隐藏模态框等。

6、示例

二、常用界面

<!DOCTYPE html>
<html lang="en">

<head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <style>
                body,
                h1,
                ul,
                li {
                        margin: 0;
                        padding: 0;
                }

                /* 整体容器样式 */
                .container {
                        display: flex;
                        flex-direction: column;
                        min-height: 100vh;
                        /* 设置容器至少铺满整个视口高度 */
                }

                /* 顶部 Banner 样式 */
                header {
                        background-color: #555;
                        color: #fff;
                        padding: 10px;
                        text-align: center;
                }

                /* 导航栏和内容区域容器样式 */
                .content-container {
                        display: flex;
                        flex: 1;
                        /* 填充剩余空间 */
                }

                /* 导航栏样式 */
                nav {
                        background-color: #333;
                        color: #fff;
                        text-align: center;
                        width: 200px;
                        /* 左侧导航栏宽度 */
                        display: flex;
                        flex-direction: column;
                        /* 将导航栏内元素垂直排列 */
                        align-items: stretch;
                        /* 让导航栏高度延伸至底部 */
                        padding: 20px;
                }

                ul {
                        list-style: none;
                }

                a {
                        text-decoration: none;
                        color: #fff;
                        display: block;
                        padding: 10px;
                        border-bottom: 1px solid #555;
                        /* 添加底边框,提高可读性 */
                }

                /* 右侧内容区域样式 */
                .content {
                        flex: 1;
                        /* 填充剩余空间 */
                        padding: 20px;
                }

                .page {
                        display: none;
                        /* 默认隐藏所有 div 元素 */
                }

                .page.active {
                        display: block;
                }

                /* 添加表格样式 */
                table {
                width: 100%;
                border-collapse: collapse;
                margin-top: 20px;
                }

                th, td {
                border: 1px solid #ddd;
                padding: 8px;
                text-align: center;
                }
        </style>
</head>

<body>
        <!-- 整体容器 -->
        <div class="container">
                <!-- 顶部 Banner -->
                <header>
                        <h1>您的网站名称</h1>
                </header>

                <!-- 导航栏和内容区域容器 -->
                <div class="content-container">
                        <!-- 左侧导航栏 -->
                        <nav>
                                <ul>
                                        <li><a href="#" onclick="showPage('page1')">选项1</a></li>
                                        <li><a href="#" onclick="showPage('page2')">选项2</a></li>
                                        <li><a href="#" onclick="showPage('page3')">选项3</a></li>
                                </ul>
                        </nav>

                        <!-- 右侧内容区域 -->
                        <div class="content">
                                <!-- 页面内容 -->
                                <div id="page1" class="page active">
                                        <h2>页面1内容</h2>
                                        <!-- 表格 -->
                                        <table>
                                                <thead>
                                                        <tr>
                                                                <th>列1</th>
                                                                <th>列2</th>
                                                                <th>列3</th>
                                                                <th>列4</th>
                                                                <th>列5</th>
                                                                <th>列6</th>
                                                                <th>列7</th>
                                                                <th>列8</th>
                                                                <th>列9</th>
                                                                <th>列10</th>
                                                                <th>列11</th>
                                                        </tr>
                                                </thead>
                                                <tbody>
                                                        <!-- 表格内容 -->
                                                        <tr>
                                                                <td>数据1</td>
                                                                <td>数据2</td>
                                                                <td>数据3</td>
                                                                <td>数据4</td>
                                                                <td>数据5</td>
                                                                <td>数据6</td>
                                                                <td>数据7</td>
                                                                <td>数据8</td>
                                                                <td>数据9</td>
                                                                <td>数据10</td>
                                                                <td>数据11</td>
                                                        </tr>
                                                        <!-- 添加更多行和数据 -->
                                                </tbody>
                                        </table>
                                </div>

                                <div id="page2" class="page">
                                        <h2>页面2内容</h2>
                                </div>

                                <div id="page3" class="page">
                                        <h2>页面3内容</h2>
                                </div>
                        </div>
                </div>
        </div>

        <script>
                // JavaScript 函数,根据传入的页面 ID 显示对应的 div 元素
                function showPage(pageId) {
                        // 隐藏所有页面
                        var pages = document.querySelectorAll('.page');
                        pages.forEach(page => page.classList.remove('active'));

                        // 显示选中的页面
                        var selectedPage = document.getElementById(pageId);
                        if (selectedPage) {
                                selectedPage.classList.add('active');
                        }
                }
        </script>
</body>

</html>
Copyright Curiouser all right reserved,powered by Gitbook该文件最后修改时间: 2024-01-29 13:14:38

results matching ""

    No results matching ""