亮色响应式网站

发布于 2025-04-26 浏览 138 人次

亮色主题响应式网站头部和底部(带移动端菜单)

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>亮色响应式网站</title>
    <!-- Font Awesome 6.4.0 -->
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
    <style>
        /* 全局样式重置 */
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
            font-family: 'Segoe UI', system-ui, -apple-system, sans-serif;
        }

        :root {
            --primary-color: #2563eb;
            --secondary-color: #3b82f6;
            --light-bg: #ffffff;
            --lighter-bg: #f8fafc;
            --dark-text: #1e293b;
            --muted-text: #64748b;
            --border-color: #e2e8f0;
            --hover-color: #f1f5f9;
            --transition-speed: 0.3s;
            --shadow: 0 4px 6px rgba(0, 0, 0, 0.05);
            --radius: 0; /* 直角设计 */
            --overlay-color: rgba(0, 0, 0, 0.5);
        }

        body {
            background-color: var(--light-bg);
            color: var(--dark-text);
            line-height: 1.6;
        }

        /* 头部样式 */
        .site-header {
            background-color: var(--light-bg);
            position: sticky;
            top: 0;
            z-index: 1000;
            box-shadow: var(--shadow);
            border-bottom: 1px solid var(--border-color);
        }

        .header-container {
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding: 0 2rem;
            max-width: 1400px;
            margin: 0 auto;
            height: 70px;
            position: relative;
        }

        /* Logo样式 */
        .logo {
            display: flex;
            align-items: center;
            font-size: 1.5rem;
            font-weight: 700;
            color: var(--dark-text);
            text-decoration: none;
            transition: transform var(--transition-speed);
        }

        .logo:hover {
            transform: scale(1.05);
        }

        .logo i {
            margin-right: 0.5rem;
            color: var(--primary-color);
        }

        /* 主导航样式 */
        .main-nav {
            display: flex;
            align-items: center;
        }

        .nav-list {
            display: flex;
            list-style: none;
        }

        .nav-item {
            position: relative;
            margin: 0 0.5rem;
        }

        .nav-link {
            display: flex;
            align-items: center;
            padding: 0.8rem 1rem;
            color: var(--dark-text);
            text-decoration: none;
            font-weight: 500;
            transition: all var(--transition-speed);
            border-radius: var(--radius);
        }

        .nav-link:hover {
            background-color: var(--hover-color);
            color: var(--primary-color);
        }

        .nav-link i {
            margin-left: 0.5rem;
            font-size: 0.8rem;
            transition: transform var(--transition-speed);
        }

        .nav-item:hover .nav-link i {
            transform: rotate(180deg);
        }

        /* 下拉菜单样式 */
        .dropdown-menu {
            position: absolute;
            top: 100%;
            left: 0;
            background-color: var(--light-bg);
            width: 220px;
            opacity: 0;
            visibility: hidden;
            transform: translateY(10px);
            transition: all var(--transition-speed);
            box-shadow: var(--shadow);
            border: 1px solid var(--border-color);
            z-index: 100;
        }

        .nav-item:hover .dropdown-menu {
            opacity: 1;
            visibility: visible;
            transform: translateY(0);
        }

        .dropdown-item {
            display: block;
            padding: 0.8rem 1.5rem;
            color: var(--muted-text);
            text-decoration: none;
            transition: all var(--transition-speed);
            border-left: 3px solid transparent;
        }

        .dropdown-item:hover {
            color: var(--primary-color);
            background-color: var(--hover-color);
            border-left-color: var(--primary-color);
        }

        .dropdown-item i {
            margin-right: 0.8rem;
            width: 1rem;
            text-align: center;
        }

        /* 搜索框样式 */
        .search-box {
            flex: 0 1 400px;
            margin: 0 1.5rem;
            position: relative;
        }

        .search-input {
            width: 100%;
            padding: 0.7rem 1rem 0.7rem 2.5rem;
            background-color: var(--lighter-bg);
            border: 1px solid var(--border-color);
            color: var(--dark-text);
            font-size: 0.95rem;
            border-radius: var(--radius);
            transition: all var(--transition-speed);
        }

        .search-input:focus {
            outline: none;
            border-color: var(--primary-color);
            box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.2);
        }

        .search-icon {
            position: absolute;
            left: 1rem;
            top: 50%;
            transform: translateY(-50%);
            color: var(--muted-text);
        }

        /* 用户区域样式 */
        .user-area {
            display: flex;
            align-items: center;
        }

        .user-avatar {
            width: 40px;
            height: 40px;
            border-radius: 50%;
            object-fit: cover;
            cursor: pointer;
            transition: transform var(--transition-speed);
            border: 2px solid transparent;
        }

        .user-avatar:hover {
            transform: scale(1.1);
            border-color: var(--primary-color);
        }

        .user-dropdown {
            position: absolute;
            top: 100%;
            right: 2rem;
            background-color: var(--light-bg);
            width: 200px;
            opacity: 0;
            visibility: hidden;
            transform: translateY(10px);
            transition: all var(--transition-speed);
            box-shadow: var(--shadow);
            border: 1px solid var(--border-color);
            z-index: 100;
        }

        .user-area:hover .user-dropdown {
            opacity: 1;
            visibility: visible;
            transform: translateY(0);
        }

        .user-dropdown-item {
            display: flex;
            align-items: center;
            padding: 0.8rem 1.5rem;
            color: var(--muted-text);
            text-decoration: none;
            transition: all var(--transition-speed);
        }

        .user-dropdown-item:hover {
            color: var(--primary-color);
            background-color: var(--hover-color);
        }

        .user-dropdown-item i {
            margin-right: 0.8rem;
            width: 1rem;
            text-align: center;
        }

        .divider {
            height: 1px;
            background-color: var(--border-color);
            margin: 0.5rem 0;
        }

        /* 移动端菜单按钮 */
        .mobile-menu-btn {
            display: none;
            font-size: 1.5rem;
            cursor: pointer;
            color: var(--dark-text);
            transition: color var(--transition-speed);
            z-index: 1001;
        }

        .mobile-menu-btn:hover {
            color: var(--primary-color);
        }

        /* 移动端菜单 */
        .mobile-menu {
            position: fixed;
            top: 0;
            left: -280px;
            width: 280px;
            height: 100vh;
            background-color: var(--light-bg);
            z-index: 1002;
            transition: transform var(--transition-speed);
            box-shadow: 2px 0 10px rgba(0, 0, 0, 0.1);
            overflow-y: auto;
            padding-top: 70px;
        }

        .mobile-menu.active {
            transform: translateX(280px);
        }

        .mobile-nav-list {
            list-style: none;
            padding: 1rem 0;
        }

        .mobile-nav-item {
            position: relative;
        }

        .mobile-nav-link {
            display: flex;
            align-items: center;
            justify-content: space-between;
            padding: 1rem 1.5rem;
            color: var(--dark-text);
            text-decoration: none;
            font-weight: 500;
            transition: all var(--transition-speed);
        }

        .mobile-nav-link:hover {
            background-color: var(--hover-color);
            color: var(--primary-color);
        }

        .mobile-nav-link i {
            transition: transform var(--transition-speed);
        }

        .mobile-nav-item.active .mobile-nav-link i {
            transform: rotate(180deg);
        }

        .mobile-dropdown-menu {
            max-height: 0;
            overflow: hidden;
            transition: max-height var(--transition-speed);
            background-color: var(--lighter-bg);
        }

        .mobile-nav-item.active .mobile-dropdown-menu {
            max-height: 500px;
        }

        .mobile-dropdown-item {
            display: block;
            padding: 0.8rem 1.5rem 0.8rem 2.5rem;
            color: var(--muted-text);
            text-decoration: none;
            transition: all var(--transition-speed);
        }

        .mobile-dropdown-item:hover {
            color: var(--primary-color);
            background-color: var(--hover-color);
        }

        .mobile-dropdown-item i {
            margin-right: 0.8rem;
            width: 1rem;
            text-align: center;
        }

        /* 遮罩层 */
        .overlay {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background-color: var(--overlay-color);
            z-index: 1001;
            opacity: 0;
            visibility: hidden;
            transition: all var(--transition-speed);
        }

        .overlay.active {
            opacity: 1;
            visibility: visible;
        }

        /* 底部样式 */
        .site-footer {
            background-color: var(--lighter-bg);
            padding: 3rem 0 0;
            border-top: 1px solid var(--border-color);
        }

        .footer-container {
            max-width: 1400px;
            margin: 0 auto;
            padding: 0 2rem;
        }

        .footer-columns {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
            gap: 2rem;
            margin-bottom: 2rem;
        }

        .footer-column h3 {
            color: var(--dark-text);
            margin-bottom: 1.5rem;
            font-size: 1.1rem;
            position: relative;
            padding-bottom: 0.5rem;
        }

        .footer-column h3::after {
            content: '';
            position: absolute;
            left: 0;
            bottom: 0;
            width: 40px;
            height: 2px;
            background: linear-gradient(to right, var(--primary-color), var(--secondary-color));
        }

        .footer-links {
            list-style: none;
        }

        .footer-link {
            display: block;
            padding: 0.5rem 0;
            color: var(--muted-text);
            text-decoration: none;
            transition: all var(--transition-speed);
        }

        .footer-link:hover {
            color: var(--primary-color);
            transform: translateX(5px);
        }

        .footer-link i {
            margin-right: 0.5rem;
            width: 1rem;
            text-align: center;
        }

        .social-links {
            display: flex;
            gap: 1rem;
            margin-top: 1rem;
        }

        .social-link {
            display: flex;
            align-items: center;
            justify-content: center;
            width: 36px;
            height: 36px;
            border-radius: 50%;
            background-color: var(--light-bg);
            color: var(--dark-text);
            transition: all var(--transition-speed);
            box-shadow: var(--shadow);
        }

        .social-link:hover {
            transform: translateY(-3px);
            box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
        }

        .social-link:nth-child(1):hover { background-color: #4267B2; color: white; } /* Facebook */
        .social-link:nth-child(2):hover { background-color: #1DA1F2; color: white; } /* Twitter */
        .social-link:nth-child(3):hover { background-color: #E1306C; color: white; } /* Instagram */
        .social-link:nth-child(4):hover { background-color: #FF0000; color: white; } /* YouTube */

        .footer-bottom {
            padding: 1.5rem 0;
            border-top: 1px solid var(--border-color);
            display: flex;
            justify-content: space-between;
            align-items: center;
            color: var(--muted-text);
            font-size: 0.9rem;
        }

        .back-to-top {
            display: flex;
            align-items: center;
            color: var(--muted-text);
            text-decoration: none;
            transition: all var(--transition-speed);
        }

        .back-to-top:hover {
            color: var(--primary-color);
        }

        .back-to-top i {
            margin-left: 0.5rem;
            transition: transform var(--transition-speed);
        }

        .back-to-top:hover i {
            transform: translateY(-3px);
        }

        /* 响应式设计 */
        @media (max-width: 1024px) {
            .header-container {
                padding: 0 1.5rem;
            }

            .search-box {
                flex: 0 1 300px;
                margin: 0 1rem;
            }
        }

        @media (max-width: 768px) {
            .header-container {
                height: 60px;
                padding: 0 1rem;
            }

            .main-nav {
                display: none;
            }

            .search-box {
                display: none;
            }

            .mobile-menu-btn {
                display: block;
            }

            .footer-columns {
                grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
            }
        }

        @media (max-width: 480px) {
            .footer-columns {
                grid-template-columns: 1fr;
            }

            .footer-bottom {
                flex-direction: column;
                text-align: center;
                gap: 1rem;
            }
        }

        /* 动画效果 */
        @keyframes fadeIn {
            from { opacity: 0; }
            to { opacity: 1; }
        }

        .site-header {
            animation: fadeIn 0.5s ease-out;
        }

        .site-footer {
            animation: fadeIn 0.5s ease-out 0.2s both;
        }
    </style>
</head>
<body>
    <!-- 头部区域 -->
    <header class="site-header">
        <div class="header-container">
            <!-- Logo -->
            <a href="#" class="logo">
                <i class="fas fa-rocket"></i>
                <span>TechSpace</span>
            </a>

            <!-- 主导航 -->
            <nav class="main-nav">
                <ul class="nav-list">
                    <li class="nav-item">
                        <a href="#" class="nav-link">
                            <span>首页</span>
                        </a>
                    </li>
                    <li class="nav-item">
                        <a href="#" class="nav-link">
                            <span>分类</span>
                            <i class="fas fa-chevron-down"></i>
                        </a>
                        <div class="dropdown-menu">
                            <a href="#" class="dropdown-item">
                                <i class="fas fa-laptop-code"></i>
                                <span>编程开发</span>
                            </a>
                            <a href="#" class="dropdown-item">
                                <i class="fas fa-paint-brush"></i>
                                <span>设计创意</span>
                            </a>
                            <a href="#" class="dropdown-item">
                                <i class="fas fa-chart-line"></i>
                                <span>数据分析</span>
                            </a>
                            <a href="#" class="dropdown-item">
                                <i class="fas fa-gamepad"></i>
                                <span>游戏开发</span>
                            </a>
                            <a href="#" class="dropdown-item">
                                <i class="fas fa-mobile-alt"></i>
                                <span>移动开发</span>
                            </a>
                        </div>
                    </li>
                    <li class="nav-item">
                        <a href="#" class="nav-link">
                            <span>教程</span>
                            <i class="fas fa-chevron-down"></i>
                        </a>
                        <div class="dropdown-menu">
                            <a href="#" class="dropdown-item">
                                <i class="fas fa-video"></i>
                                <span>视频教程</span>
                            </a>
                            <a href="#" class="dropdown-item">
                                <i class="fas fa-book"></i>
                                <span>文档教程</span>
                            </a>
                            <a href="#" class="dropdown-item">
                                <i class="fas fa-project-diagram"></i>
                                <span>实战项目</span>
                            </a>
                        </div>
                    </li>
                    <li class="nav-item">
                        <a href="#" class="nav-link">
                            <span>社区</span>
                        </a>
                    </li>
                    <li class="nav-item">
                        <a href="#" class="nav-link">
                            <span>关于</span>
                        </a>
                    </li>
                </ul>
            </nav>

            <!-- 搜索框 -->
            <div class="search-box">
                <i class="fas fa-search search-icon"></i>
                <input type="text" class="search-input" placeholder="搜索内容...">
            </div>

            <!-- 用户区域 -->
            <div class="user-area">
                <img src="https://randomuser.me/api/portraits/men/32.jpg" alt="用户头像" class="user-avatar">
                <div class="user-dropdown">
                    <a href="#" class="user-dropdown-item">
                        <i class="fas fa-user-circle"></i>
                        <span>个人中心</span>
                    </a>
                    <a href="#" class="user-dropdown-item">
                        <i class="fas fa-cog"></i>
                        <span>账户设置</span>
                    </a>
                    <a href="#" class="user-dropdown-item">
                        <i class="fas fa-bookmark"></i>
                        <span>我的收藏</span>
                    </a>
                    <div class="divider"></div>
                    <a href="#" class="user-dropdown-item">
                        <i class="fas fa-sign-out-alt"></i>
                        <span>退出登录</span>
                    </a>
                </div>
            </div>

            <!-- 移动端菜单按钮 -->
            <button class="mobile-menu-btn" id="mobileMenuBtn">
                <i class="fas fa-bars"></i>
            </button>
        </div>
    </header>

    <!-- 移动端菜单 -->
    <div class="mobile-menu" id="mobileMenu">
        <ul class="mobile-nav-list">
            <li class="mobile-nav-item">
                <a href="#" class="mobile-nav-link">
                    <span>首页</span>
                </a>
            </li>
            <li class="mobile-nav-item">
                <a href="#" class="mobile-nav-link">
                    <span>分类</span>
                    <i class="fas fa-chevron-down"></i>
                </a>
                <div class="mobile-dropdown-menu">
                    <a href="#" class="mobile-dropdown-item">
                        <i class="fas fa-laptop-code"></i>
                        <span>编程开发</span>
                    </a>
                    <a href="#" class="mobile-dropdown-item">
                        <i class="fas fa-paint-brush"></i>
                        <span>设计创意</span>
                    </a>
                    <a href="#" class="mobile-dropdown-item">
                        <i class="fas fa-chart-line"></i>
                        <span>数据分析</span>
                    </a>
                    <a href="#" class="mobile-dropdown-item">
                        <i class="fas fa-gamepad"></i>
                        <span>游戏开发</span>
                    </a>
                    <a href="#" class="mobile-dropdown-item">
                        <i class="fas fa-mobile-alt"></i>
                        <span>移动开发</span>
                    </a>
                </div>
            </li>
            <li class="mobile-nav-item">
                <a href="#" class="mobile-nav-link">
                    <span>教程</span>
                    <i class="fas fa-chevron-down"></i>
                </a>
                <div class="mobile-dropdown-menu">
                    <a href="#" class="mobile-dropdown-item">
                        <i class="fas fa-video"></i>
                        <span>视频教程</span>
                    </a>
                    <a href="#" class="mobile-dropdown-item">
                        <i class="fas fa-book"></i>
                        <span>文档教程</span>
                    </a>
                    <a href="#" class="mobile-dropdown-item">
                        <i class="fas fa-project-diagram"></i>
                        <span>实战项目</span>
                    </a>
                </div>
            </li>
            <li class="mobile-nav-item">
                <a href="#" class="mobile-nav-link">
                    <span>社区</span>
                </a>
            </li>
            <li class="mobile-nav-item">
                <a href="#" class="mobile-nav-link">
                    <span>关于</span>
                </a>
            </li>
        </ul>
    </div>

    <!-- 遮罩层 -->
    <div class="overlay" id="overlay"></div>

    <!-- 主要内容区域 -->
    <main style="min-height: 80vh; padding: 2rem;">
        <!-- 这里放置页面主要内容 -->
        <h1 style="text-align: center; margin-top: 2rem;">欢迎来到TechSpace</h1>
    </main>

    <!-- 底部区域 -->
    <footer class="site-footer">
        <div class="footer-container">
            <div class="footer-columns">
                <div class="footer-column">
                    <h3>快速链接</h3>
                    <ul class="footer-links">
                        <li><a href="#" class="footer-link"><i class="fas fa-home"></i> 首页</a></li>
                        <li><a href="#" class="footer-link"><i class="fas fa-list"></i> 分类</a></li>
                        <li><a href="#" class="footer-link"><i class="fas fa-book"></i> 教程</a></li>
                        <li><a href="#" class="footer-link"><i class="fas fa-users"></i> 社区</a></li>
                        <li><a href="#" class="footer-link"><i class="fas fa-info-circle"></i> 关于我们</a></li>
                    </ul>
                </div>
                <div class="footer-column">
                    <h3>帮助中心</h3>
                    <ul class="footer-links">
                        <li><a href="#" class="footer-link"><i class="fas fa-question-circle"></i> 常见问题</a></li>
                        <li><a href="#" class="footer-link"><i class="fas fa-envelope"></i> 联系我们</a></li>
                        <li><a href="#" class="footer-link"><i class="fas fa-shield-alt"></i> 隐私政策</a></li>
                        <li><a href="#" class="footer-link"><i class="fas fa-file-alt"></i> 服务条款</a></li>
                        <li><a href="#" class="footer-link"><i class="fas fa-comment-dots"></i> 反馈建议</a></li>
                    </ul>
                </div>
                <div class="footer-column">
                    <h3>学习资源</h3>
                    <ul class="footer-links">
                        <li><a href="#" class="footer-link"><i class="fas fa-video"></i> 视频教程</a></li>
                        <li><a href="#" class="footer-link"><i class="fas fa-file-code"></i> 代码示例</a></li>
                        <li><a href="#" class="footer-link"><i class="fas fa-project-diagram"></i> 实战项目</a></li>
                        <li><a href="#" class="footer-link"><i class="fas fa-book-open"></i> 文档手册</a></li>
                        <li><a href="#" class="footer-link"><i class="fas fa-tools"></i> 开发工具</a></li>
                    </ul>
                </div>
                <div class="footer-column">
                    <h3>联系我们</h3>
                    <ul class="footer-links">
                        <li><a href="#" class="footer-link"><i class="fas fa-envelope"></i> contact@techspace.com</a></li>
                        <li><a href="#" class="footer-link"><i class="fas fa-phone-alt"></i> +86 123 4567 8910</a></li>
                        <li><a href="#" class="footer-link"><i class="fas fa-map-marker-alt"></i> 北京市海淀区科技园</a></li>
                    </ul>
                    <div class="social-links">
                        <a href="#" class="social-link"><i class="fab fa-facebook-f"></i></a>
                        <a href="#" class="social-link"><i class="fab fa-twitter"></i></a>
                        <a href="#" class="social-link"><i class="fab fa-instagram"></i></a>
                        <a href="#" class="social-link"><i class="fab fa-youtube"></i></a>
                    </div>
                </div>
            </div>
            <div class="footer-bottom">
                <p>&copy; 2023 TechSpace 版权所有</p>
                <a href="#" class="back-to-top">
                    <span>返回顶部</span>
                    <i class="fas fa-arrow-up"></i>
                </a>
            </div>
        </div>
    </footer>

    <script>
        // 移动端菜单控制
        const mobileMenuBtn = document.getElementById('mobileMenuBtn');
        const mobileMenu = document.getElementById('mobileMenu');
        const overlay = document.getElementById('overlay');
        const mobileNavItems = document.querySelectorAll('.mobile-nav-item');

        // 切换菜单显示/隐藏
        mobileMenuBtn.addEventListener('click', function() {
            mobileMenu.classList.toggle('active');
            overlay.classList.toggle('active');
            document.body.style.overflow = mobileMenu.classList.contains('active') ? 'hidden' : '';
        });

        // 点击遮罩层关闭菜单
        overlay.addEventListener('click', function() {
            mobileMenu.classList.remove('active');
            overlay.classList.remove('active');
            document.body.style.overflow = '';
        });

        // 移动端下拉菜单控制
        mobileNavItems.forEach(item => {
            const link = item.querySelector('.mobile-nav-link');
            if (link.nextElementSibling && link.nextElementSibling.classList.contains('mobile-dropdown-menu')) {
                link.addEventListener('click', function(e) {
                    e.preventDefault();
                    item.classList.toggle('active');
                });
            }
        });

        // 返回顶部按钮
        const backToTop = document.querySelector('.back-to-top');
        backToTop.addEventListener('click', function(e) {
            e.preventDefault();
            window.scrollTo({
                top: 0,
                behavior: 'smooth'
            });
        });
    </script>
</body>
</html>

主要改进说明

  1. 亮色主题

    • 更新了所有颜色变量为亮色主题
    • 调整了阴影和边框颜色以匹配亮色设计
    • 保持了高对比度确保可读性
  2. 移动端菜单增强

    • 添加了左侧滑出菜单
    • 增加了遮罩层(overlay)
    • 实现了点击菜单按钮展开/收起功能
    • 添加了移动端下拉菜单的展开/收起功能
  3. JavaScript交互

    • 菜单按钮点击事件
    • 遮罩层点击关闭菜单
    • 移动端下拉菜单控制
    • 返回顶部按钮平滑滚动
  4. 用户体验改进

    • 菜单展开时禁止页面滚动
    • 平滑的过渡动画
    • 清晰的视觉反馈
  5. 响应式设计

    • 完全适配从移动端到桌面端
    • 移动端优先的设计方法
    • 优化了小屏幕下的布局

这个代码可以直接使用,所有资源都通过CDN引入,无需额外文件。