炫酷代码分享社区 - HTML实现

发布于 2025-04-23 浏览 61 人次

炫酷代码分享社区 - HTML实现

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>CodeVerse | 极客代码分享社区</title>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
    <style>
        /* 基础变量与重置 */
        :root {
            --primary: #4361ee;
            --secondary: #3f37c9;
            --accent: #4cc9f0;
            --dark: #1a1a2e;
            --light: #f8f9fa;
            --success: #4ade80;
            --warning: #fbbf24;
            --danger: #f87171;
            --gray: #6c757d;
            --card-bg: rgba(255, 255, 255, 0.95);
            --transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
            --shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
            --glow: 0 0 15px rgba(67, 97, 238, 0.3);
        }

        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        body {
            font-family: 'Segoe UI', system-ui, -apple-system, sans-serif;
            background-color: #f5f7ff;
            color: #333;
            line-height: 1.6;
            overflow-x: hidden;
        }

        /* 导航栏 */
        header {
            background: linear-gradient(135deg, var(--primary), var(--secondary));
            color: white;
            padding: 1rem 2rem;
            box-shadow: var(--shadow);
            position: sticky;
            top: 0;
            z-index: 100;
            display: flex;
            justify-content: space-between;
            align-items: center;
        }

        .logo {
            display: flex;
            align-items: center;
            gap: 0.5rem;
            font-size: 1.5rem;
            font-weight: 700;
        }

        .logo i {
            color: var(--accent);
            filter: drop-shadow(0 0 5px rgba(76, 201, 240, 0.7));
        }

        .nav-links {
            display: flex;
            gap: 1.5rem;
        }

        .nav-links a {
            color: white;
            text-decoration: none;
            font-weight: 500;
            transition: var(--transition);
            position: relative;
        }

        .nav-links a:hover {
            color: var(--accent);
        }

        .nav-links a::after {
            content: '';
            position: absolute;
            bottom: -5px;
            left: 0;
            width: 0;
            height: 2px;
            background: var(--accent);
            transition: var(--transition);
        }

        .nav-links a:hover::after {
            width: 100%;
        }

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

        .user-avatar:hover {
            transform: scale(1.1);
            box-shadow: var(--glow);
        }

        /* 主要内容区 */
        main {
            max-width: 1200px;
            margin: 2rem auto;
            padding: 0 1rem;
        }

        /* 搜索与发布区 */
        .action-bar {
            display: flex;
            flex-wrap: wrap;
            gap: 1rem;
            margin-bottom: 2rem;
            align-items: center;
        }

        .search-container {
            flex: 1;
            min-width: 250px;
            position: relative;
        }

        .search-bar {
            width: 100%;
            padding: 0.8rem 1rem 0.8rem 3rem;
            border: none;
            border-radius: 50px;
            font-size: 1rem;
            box-shadow: var(--shadow);
            transition: var(--transition);
            background: white url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%236c757d'%3E%3Cpath d='M15.5 14h-.79l-.28-.27a6.5 6.5 0 0 0 1.48-5.34c-.47-2.78-2.79-5-5.59-5.34a6.505 6.505 0 0 0-7.27 7.27c.34 2.8 2.56 5.12 5.34 5.59a6.5 6.5 0 0 0 5.34-1.48l.27.28v.79l4.25 4.25c.41.41 1.08.41 1.49 0 .41-.41.41-1.08 0-1.49L15.5 14zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z'/%3E%3C/svg%3E") no-repeat 1rem center;
            background-size: 20px;
        }

        .search-bar:focus {
            outline: none;
            box-shadow: 0 0 0 3px rgba(67, 97, 238, 0.3);
            transform: translateY(-2px);
        }

        .publish-btn {
            background: linear-gradient(to right, var(--primary), var(--accent));
            color: white;
            border: none;
            padding: 0.8rem 1.5rem;
            border-radius: 50px;
            font-weight: 600;
            cursor: pointer;
            display: flex;
            align-items: center;
            gap: 0.5rem;
            box-shadow: var(--shadow);
            transition: var(--transition);
        }

        .publish-btn:hover {
            transform: translateY(-2px);
            box-shadow: var(--glow);
        }

        /* 内容卡片网格 */
        .card-grid {
            display: grid;
            grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
            gap: 1.5rem;
        }

        .code-card {
            background: var(--card-bg);
            border-radius: 10px;
            overflow: hidden;
            box-shadow: var(--shadow);
            transition: var(--transition);
            display: flex;
            flex-direction: column;
            height: 100%;
        }

        .code-card:hover {
            transform: translateY(-5px);
            box-shadow: 0 10px 20px rgba(0, 0, 0, 0.15);
        }

        /* 卡片封面区域 */
        .card-cover {
            position: relative;
            height: 160px;
            overflow: hidden;
        }

        .card-cover img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            transition: transform 0.5s ease;
        }

        .code-card:hover .card-cover img {
            transform: scale(1.05);
        }

        .cover-placeholder {
            height: 100%;
            display: flex;
            align-items: center;
            justify-content: center;
            background: linear-gradient(135deg, #e0e7ff, #c7d2fe);
            color: var(--primary);
            font-size: 3rem;
        }

        /* 卡片内容区域 */
        .card-content {
            padding: 1.2rem;
            flex: 1;
            display: flex;
            flex-direction: column;
        }

        .card-title {
            font-size: 1.2rem;
            margin-bottom: 0.5rem;
            color: var(--dark);
            font-weight: 600;
            display: -webkit-box;
            -webkit-line-clamp: 2;
            -webkit-box-orient: vertical;
            overflow: hidden;
        }

        .card-desc {
            color: var(--gray);
            font-size: 0.9rem;
            margin-bottom: 1rem;
            display: -webkit-box;
            -webkit-line-clamp: 3;
            -webkit-box-orient: vertical;
            overflow: hidden;
            flex: 1;
        }

        /* 标签样式 */
        .card-tags {
            display: flex;
            flex-wrap: wrap;
            gap: 0.5rem;
            margin-bottom: 1rem;
        }

        .tag {
            background: #e0e7ff;
            color: var(--primary);
            padding: 0.2rem 0.6rem;
            border-radius: 50px;
            font-size: 0.7rem;
            font-weight: 500;
            transition: var(--transition);
        }

        .tag:hover {
            background: var(--primary);
            color: white;
            transform: translateY(-2px);
        }

        /* 卡片底部信息 */
        .card-footer {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-top: auto;
            padding-top: 0.8rem;
            border-top: 1px solid #eee;
        }

        .author-info {
            display: flex;
            align-items: center;
            gap: 0.5rem;
        }

        .author-avatar {
            width: 24px;
            height: 24px;
            border-radius: 50%;
            object-fit: cover;
        }

        .author-name {
            font-size: 0.8rem;
            color: var(--gray);
        }

        .card-stats {
            display: flex;
            gap: 1rem;
        }

        .stat {
            display: flex;
            align-items: center;
            gap: 0.3rem;
            font-size: 0.8rem;
            color: var(--gray);
        }

        .stat i {
            font-size: 0.9rem;
        }

        /* 响应式调整 */
        @media (max-width: 768px) {
            header {
                flex-direction: column;
                gap: 1rem;
                padding: 1rem;
            }

            .nav-links {
                width: 100%;
                justify-content: space-around;
            }

            .card-grid {
                grid-template-columns: 1fr;
            }
        }

        @media (max-width: 480px) {
            .action-bar {
                flex-direction: column;
            }

            .search-container, .publish-btn {
                width: 100%;
            }

            .nav-links {
                flex-wrap: wrap;
            }
        }

        /* 特殊动画效果 */
        @keyframes float {
            0%, 100% {
                transform: translateY(0);
            }
            50% {
                transform: translateY(-5px);
            }
        }

        .publish-btn {
            animation: float 3s ease-in-out infinite;
        }

        /* 流光边框效果 */
        .search-container::before {
            content: '';
            position: absolute;
            top: -2px;
            left: -2px;
            right: -2px;
            bottom: -2px;
            background: linear-gradient(45deg, 
                var(--primary), var(--accent), var(--secondary), var(--primary));
            background-size: 400%;
            border-radius: 50px;
            z-index: -1;
            opacity: 0;
            transition: 0.5s;
        }

        .search-container:focus-within::before {
            opacity: 1;
            animation: animate 8s linear infinite;
            filter: blur(5px);
        }

        @keyframes animate {
            0% {
                background-position: 0 0;
            }
            50% {
                background-position: 300% 0;
            }
            100% {
                background-position: 0 0;
            }
        }
    </style>
</head>
<body>
    <header>
        <div class="logo">
            <i class="fas fa-code"></i>
            <span>CodeVerse</span>
        </div>
        <nav class="nav-links">
            <a href="#">首页</a>
            <a href="#">热门</a>
            <a href="#">分类</a>
            <a href="#">教程</a>
            <a href="#">关于</a>
        </nav>
        <img src="https://randomuser.me/api/portraits/women/44.jpg" alt="用户头像" class="user-avatar">
    </header>

    <main>
        <div class="action-bar">
            <div class="search-container">
                <input type="text" class="search-bar" placeholder="搜索代码、标签或用户...">
            </div>
            <button class="publish-btn">
                <i class="fas fa-plus"></i>
                <span>发布代码</span>
            </button>
        </div>

        <div class="card-grid">
            <!-- 卡片1 - 有封面图 -->
            <article class="code-card">
                <div class="card-cover">
                    <img src="https://images.unsplash.com/photo-1555066931-43605d9670a5?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1170&q=80" alt="代码封面">
                </div>
                <div class="card-content">
                    <h3 class="card-title">React 3D粒子动画效果实现</h3>
                    <p class="card-desc">使用React Three Fiber创建高性能的3D粒子动画,包含交互效果和响应式设计,适用于各种现代网站...</p>
                    <div class="card-tags">
                        <span class="tag">React</span>
                        <span class="tag">Three.js</span>
                        <span class="tag">动画</span>
                    </div>
                    <div class="card-footer">
                        <div class="author-info">
                            <img src="https://randomuser.me/api/portraits/men/32.jpg" alt="作者头像" class="author-avatar">
                            <span class="author-name">张伟</span>
                        </div>
                        <div class="card-stats">
                            <span class="stat"><i class="far fa-eye"></i> 1.2k</span>
                            <span class="stat"><i class="far fa-heart"></i> 86</span>
                        </div>
                    </div>
                </div>
            </article>

            <!-- 卡片2 - 无封面图 -->
            <article class="code-card">
                <div class="card-cover">
                    <div class="cover-placeholder">
                        <i class="fas fa-code"></i>
                    </div>
                </div>
                <div class="card-content">
                    <h3 class="card-title">纯CSS实现炫酷登录表单动画</h3>
                    <p class="card-desc">仅使用CSS和HTML创建具有流畅动画效果的登录表单,包含输入框聚焦动画、按钮悬停效果和错误状态处理...</p>
                    <div class="card-tags">
                        <span class="tag">CSS</span>
                        <span class="tag">动画</span>
                        <span class="tag">表单</span>
                    </div>
                    <div class="card-footer">
                        <div class="author-info">
                            <img src="https://randomuser.me/api/portraits/women/65.jpg" alt="作者头像" class="author-avatar">
                            <span class="author-name">李娜</span>
                        </div>
                        <div class="card-stats">
                            <span class="stat"><i class="far fa-eye"></i> 892</span>
                            <span class="stat"><i class="far fa-heart"></i> 124</span>
                        </div>
                    </div>
                </div>
            </article>

            <!-- 卡片3 - 有封面图 -->
            <article class="code-card">
                <div class="card-cover">
                    <img src="https://images.unsplash.com/photo-1547658719-da2b51169166?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1064&q=80" alt="代码封面">
                </div>
                <div class="card-content">
                    <h3 class="card-title">Vue3 + TypeScript全栈项目架构</h3>
                    <p class="card-desc">从零搭建Vue3企业级项目架构,包含TypeScript支持、Pinia状态管理、Vite配置优化和自动化部署方案...</p>
                    <div class="card-tags">
                        <span class="tag">Vue3</span>
                        <span class="tag">TypeScript</span>
                        <span class="tag">架构</span>
                    </div>
                    <div class="card-footer">
                        <div class="author-info">
                            <img src="https://randomuser.me/api/portraits/men/75.jpg" alt="作者头像" class="author-avatar">
                            <span class="author-name">王强</span>
                        </div>
                        <div class="card-stats">
                            <span class="stat"><i class="far fa-eye"></i> 2.4k</span>
                            <span class="stat"><i class="far fa-heart"></i> 312</span>
                        </div>
                    </div>
                </div>
            </article>

            <!-- 卡片4 - 无封面图 -->
            <article class="code-card">
                <div class="card-cover">
                    <div class="cover-placeholder">
                        <i class="fas fa-laptop-code"></i>
                    </div>
                </div>
                <div class="card-content">
                    <h3 class="card-title">Node.js高性能REST API最佳实践</h3>
                    <p class="card-desc">使用Express.js和MongoDB构建高性能API的完整指南,包含JWT认证、速率限制、缓存策略和错误处理...</p>
                    <div class="card-tags">
                        <span class="tag">Node.js</span>
                        <span class="tag">API</span>
                        <span class="tag">MongoDB</span>
                    </div>
                    <div class="card-footer">
                        <div class="author-info">
                            <img src="https://randomuser.me/api/portraits/women/33.jpg" alt="作者头像" class="author-avatar">
                            <span class="author-name">陈静</span>
                        </div>
                        <div class="card-stats">
                            <span class="stat"><i class="far fa-eye"></i> 1.8k</span>
                            <span class="stat"><i class="far fa-heart"></i> 245</span>
                        </div>
                    </div>
                </div>
            </article>

            <!-- 卡片5 - 有封面图 -->
            <article class="code-card">
                <div class="card-cover">
                    <img src="https://images.unsplash.com/photo-1542903660-eedba2cda473?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1170&q=80" alt="代码封面">
                </div>
                <div class="card-content">
                    <h3 class="card-title">WebGL实现流体模拟效果</h3>
                    <p class="card-desc">基于WebGL的流体动力学模拟,使用GLSL着色器实现高性能计算,可应用于游戏特效和创意网站背景...</p>
                    <div class="card-tags">
                        <span class="tag">WebGL</span>
                        <span class="tag">GLSL</span>
                        <span class="tag">图形学</span>
                    </div>
                    <div class="card-footer">
                        <div class="author-info">
                            <img src="https://randomuser.me/api/portraits/men/68.jpg" alt="作者头像" class="author-avatar">
                            <span class="author-name">赵明</span>
                        </div>
                        <div class="card-stats">
                            <span class="stat"><i class="far fa-eye"></i> 3.1k</span>
                            <span class="stat"><i class="far fa-heart"></i> 498</span>
                        </div>
                    </div>
                </div>
            </article>

            <!-- 卡片6 - 无封面图 -->
            <article class="code-card">
                <div class="card-cover">
                    <div class="cover-placeholder">
                        <i class="fas fa-mobile-alt"></i>
                    </div>
                </div>
                <div class="card-content">
                    <h3 class="card-title">Flutter跨平台应用开发实战</h3>
                    <p class="card-desc">使用Flutter构建iOS和Android双平台应用的完整教程,包含状态管理、原生模块集成和性能优化技巧...</p>
                    <div class="card-tags">
                        <span class="tag">Flutter</span>
                        <span class="tag">移动开发</span>
                        <span class="tag">Dart</span>
                    </div>
                    <div class="card-footer">
                        <div class="author-info">
                            <img src="https://randomuser.me/api/portraits/women/28.jpg" alt="作者头像" class="author-avatar">
                            <span class="author-name">刘芳</span>
                        </div>
                        <div class="card-stats">
                            <span class="stat"><i class="far fa-eye"></i> 1.5k</span>
                            <span class="stat"><i class="far fa-heart"></i> 187</span>
                        </div>
                    </div>
                </div>
            </article>
        </div>
    </main>
</body>
</html>

设计亮点说明

  1. 视觉层次

    • 采用蓝紫色科技感配色方案,符合技术社区调性
    • 卡片悬浮效果增强交互感
    • 封面图与占位图智能切换展示
  2. 动态效果

    • 搜索框流光边框动画(纯CSS实现)
    • 发布按钮浮动效果
    • 卡片悬停3D提升效果
    • 封面图片缩放动画
  3. 内容展示

    • 响应式网格布局,适配各种屏幕
    • 标题和描述文字截断,保持整齐
    • 标签云交互效果
    • 作者信息和统计数据清晰展示
  4. 用户体验

    • 完全无JavaScript依赖
    • 移动端优先的响应式设计
    • 清晰的视觉层次和操作引导
    • 符合大众审美的现代设计风格

这个实现完全符合您要求的"炫酷大气"的代码分享社区风格,同时保持了良好的可读性和用户体验。