• HTML5 语义化标签: 使用 <header>, <nav>, <main>, <section>, <article>, <footer> 等,让代码结构清晰,利于 SEO 和可访问性。
  • 移动优先的响应式设计: 通过媒体查询,确保在手机、平板、桌面等不同设备上都有良好的显示效果。
  • 现代化的 CSS 布局: 使用 FlexboxGrid 进行布局,它们是目前最强大、最灵活的布局方案。
  • 可复用的组件: 模块化的 CSS 结构,方便您后续添加更多页面和功能。
  • 交互性: 包含一个简单的移动端导航菜单(汉堡菜单)的交互效果。

最终预览

您可以在浏览器中打开这个 HTML 文件,然后尝试调整浏览器窗口大小,观察布局的变化。

html 5 自适应屏幕 中文模板
(图片来源网络,侵删)

模板代码

您可以直接将以下所有代码复制到一个新的 .html 文件中(index.html),然后在浏览器中打开查看效果。

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">我的自适应网站</title>
    <!-- 引入一个流行的图标库 Font Awesome,用于显示菜单图标等 -->
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
    <style>
        /* --- 1. 全局样式和变量 --- */
        :root {
            --primary-color: #007bff;
            --secondary-color: #6c757d;
            --background-color: #f4f4f4;
            --text-color: #333;
            --header-bg: #fff;
            --footer-bg: #333;
            --max-width: 1200px;
            --padding: 20px;
        }
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }
        body {
            font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
            line-height: 1.6;
            color: var(--text-color);
            background-color: var(--background-color);
        }
        img {
            max-width: 100%;
            height: auto;
        }
        .container {
            max-width: var(--max-width);
            margin: 0 auto;
            padding: 0 var(--padding);
        }
        h1, h2, h3 {
            line-height: 1.2;
            margin-bottom: 1rem;
        }
        a {
            color: var(--primary-color);
            text-decoration: none;
        }
        a:hover {
            text-decoration: underline;
        }
        /* --- 2. 页头 --- */
        .main-header {
            background-color: var(--header-bg);
            box-shadow: 0 2px 5px rgba(0,0,0,0.1);
            position: sticky;
            top: 0;
            z-index: 1000;
        }
        .header-container {
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding: 1rem var(--padding);
        }
        .logo {
            font-size: 1.5rem;
            font-weight: bold;
        }
        /* --- 3. 导航菜单 --- */
        .main-nav ul {
            display: flex;
            list-style: none;
        }
        .main-nav a {
            color: var(--text-color);
            padding: 0.5rem 1rem;
            transition: background-color 0.3s;
        }
        .main-nav a:hover {
            background-color: #e9ecef;
            border-radius: 4px;
        }
        /* 汉堡菜单按钮 (默认隐藏) */
        .menu-toggle {
            display: none;
            background: none;
            border: none;
            font-size: 1.5rem;
            cursor: pointer;
        }
        /* --- 4. 主要内容区 --- */
        .main-content {
            padding: 2rem 0;
        }
        /* Hero 区域 */
        .hero {
            background: linear-gradient(rgba(0,0,0,0.5), rgba(0,0,0,0.5)), url('https://images.unsplash.com/photo-1557804522-97eda2d622b6?q=80&w=1974&auto=format&fit=crop') no-repeat center center/cover;
            color: #fff;
            text-align: center;
            padding: 8rem 1rem;
        }
        .hero h1 {
            font-size: 3rem;
            margin-bottom: 1rem;
        }
        .hero p {
            font-size: 1.2rem;
            max-width: 600px;
            margin: 0 auto 2rem;
        }
        .btn {
            display: inline-block;
            padding: 0.8rem 1.5rem;
            background-color: var(--primary-color);
            color: #fff;
            border: none;
            border-radius: 5px;
            cursor: pointer;
            font-size: 1rem;
            transition: background-color 0.3s, transform 0.2s;
        }
        .btn:hover {
            background-color: #0056b3;
            transform: translateY(-2px);
        }
        /* 特色区块 */
        .features {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
            gap: 2rem;
            padding: 2rem 0;
        }
        .feature-card {
            background: #fff;
            padding: 2rem;
            border-radius: 8px;
            box-shadow: 0 4px 6px rgba(0,0,0,0.1);
            text-align: center;
            transition: transform 0.3s;
        }
        .feature-card:hover {
            transform: translateY(-5px);
        }
        .feature-card i {
            font-size: 3rem;
            color: var(--primary-color);
            margin-bottom: 1rem;
        }
        /* --- 5. 页脚 --- */
        .main-footer {
            background-color: var(--footer-bg);
            color: #fff;
            text-align: center;
            padding: 2rem 0;
            margin-top: 3rem;
        }
        .main-footer p {
            margin-bottom: 0.5rem;
        }
        .footer-links a {
            color: #ccc;
            margin: 0 0.5rem;
        }
        .footer-links a:hover {
            color: #fff;
        }
        /* --- 6. 响应式设计 --- */
        @media (max-width: 768px) {
            /* 在小屏幕上,汉堡菜单按钮显示 */
            .menu-toggle {
                display: block;
            }
            /* 默认情况下,导航菜单隐藏 */
            .main-nav {
                position: absolute;
                top: 100%;
                left: 0;
                right: 0;
                background-color: var(--header-bg);
                flex-direction: column;
                padding: 1rem var(--padding);
                box-shadow: 0 2px 5px rgba(0,0,0,0.1);
                max-height: 0; /* 初始高度为0,用于动画 */
                overflow: hidden;
                transition: max-height 0.3s ease-in-out;
            }
            /* 当菜单被激活时,显示导航菜单 */
            .main-nav.active {
                max-height: 300px; /* 设置一个足够大的高度 */
            }
            .main-nav ul {
                flex-direction: column;
            }
            .main-nav a {
                display: block;
                padding: 0.8rem 0;
                border-bottom: 1px solid #eee;
            }
            /* Hero 区域文字大小调整 */
            .hero h1 {
                font-size: 2rem;
            }
            .hero p {
                font-size: 1rem;
            }
        }
    </style>
</head>
<body>
    <!-- 页头 -->
    <header class="main-header">
        <div class="container header-container">
            <a href="#" class="logo">我的网站</a>
            <!-- 汉堡菜单按钮,仅用于移动端 -->
            <button class="menu-toggle" id="menu-toggle">
                <i class="fas fa-bars"></i>
            </button>
            <!-- 主导航 -->
            <nav class="main-nav" id="main-nav">
                <ul>
                    <li><a href="#home">首页</a></li>
                    <li><a href="#about">关于我们</a></li>
                    <li><a href="#services">服务</a></li>
                    <li><a href="#portfolio">作品集</a></li>
                    <li><a href="#contact">联系我们</a></li>
                </ul>
            </nav>
        </div>
    </header>
    <main class="main-content">
        <!-- Hero 区域 -->
        <section class="hero">
            <div class="container">
                <h1>欢迎来到我的网站</h1>
                <p>这是一个使用 HTML5 和 CSS3 构建的现代化、响应式网站模板,无论您使用手机、平板还是电脑,都能获得完美的浏览体验。</p>
                <a href="#" class="btn">了解更多</a>
            </div>
        </section>
        <!-- 特色服务区域 -->
        <section class="container features">
            <article class="feature-card">
                <i class="fas fa-mobile-alt"></i>
                <h2>移动优先设计</h2>
                <p>从移动端开始设计,确保在所有小屏幕设备上都有出色的表现,然后逐步增强桌面体验。</p>
            </article>
            <article class="feature-card">
                <i class="fas fa-paint-brush"></i>
                <h2>现代化样式</h2>
                <p>采用最新的 CSS 技术,如 Flexbox 和 Grid,实现灵活、强大的布局效果。</p>
            </article>
            <article class="feature-card">
                <i class="fas fa-code"></i>
                <h2>语义化 HTML5</h2>
                <p>使用具有清晰含义的 HTML5 标签,不仅让代码更易读,也更有利于搜索引擎优化。</p>
            </article>
        </section>
    </main>
    <!-- 页脚 -->
    <footer class="main-footer">
        <div class="container">
            <p>&copy; 2025 我的公司. 保留所有权利.</p>
            <div class="footer-links">
                <a href="#"><i class="fab fa-weixin"></i></a>
                <a href="#"><i class="fab fa-weibo"></i></a>
                <a href="#"><i class="fab fa-github"></i></a>
            </div>
        </div>
    </footer>
    <script>
        // 简单的 JavaScript 用于移动端菜单的交互
        document.addEventListener('DOMContentLoaded', function() {
            const menuToggle = document.getElementById('menu-toggle');
            const mainNav = document.getElementById('main-nav');
            menuToggle.addEventListener('click', function() {
                // 切换 'active' 类来显示/隐藏菜单
                mainNav.classList.toggle('active');
                // 可选:切换菜单图标
                const icon = menuToggle.querySelector('i');
                if (mainNav.classList.contains('active')) {
                    icon.classList.remove('fa-bars');
                    icon.classList.add('fa-times');
                } else {
                    icon.classList.remove('fa-times');
                    icon.classList.add('fa-bars');
                }
            });
        });
    </script>
</body>
</html>

模板核心要点解析

响应式设计 (meta 标签和媒体查询)

  • <meta name="viewport" ...>: 这是移动端自适应的基石,它告诉浏览器如何控制页面的尺寸和缩放。width=device-width 确保页面宽度与设备屏幕宽度一致,initial-scale=1.0 设置初始缩放比例为 100%。
  • 媒体查询 (@media): CSS 的一部分,用于针对不同的屏幕尺寸应用不同的样式,在这个模板中,我们使用 @media (max-width: 768px) 来定义当屏幕宽度小于 768px(如平板或手机)时的样式。

移动优先设计

  • 我们的默认 CSS 样式是为小屏幕(移动设备)设计的。
  • 当屏幕变宽时,我们通过媒体查询来覆盖增强这些样式,而不是为小屏幕写一堆特殊的样式,导航在移动端是垂直堆叠的,在桌面端通过 Flexbox 变成水平排列,这种方法更高效,且逻辑清晰。

布局技术

  • Flexbox: 用于一维布局(行或列),在 .header-container 中,我们用它来让 Logo 和导航菜单两端对齐,在移动端,导航菜单变为列布局,也得益于 Flexbox。
  • Grid: 用于二维布局(行和列),在 .features 区域,我们使用 grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); 来创建一个自适应的卡片网格,它的意思是:“根据容器宽度,尽可能多地放置 minmax(300px, 1fr) 大小的列,如果空间不够,就自动换行”,这是创建响应式网格的绝佳方式。

语义化 HTML5 标签

  • <header>: 定义页头或区块的头部。
  • <nav>: 定义导航链接的区域。
  • <main>: 定义文档的主要内容。
  • <section>: 定义文档中的一个区段,通常有标题。
  • <article>: 定义一篇独立的文章内容。
  • <footer>: 定义页脚或区块的底部。

使用这些标签的好处是:

  • 代码可读性:结构一目了然。
  • SEO(搜索引擎优化):搜索引擎能更好地理解页面内容。
  • 可访问性:屏幕阅读器等辅助技术可以更好地为残障人士导航。

可维护性

  • CSS 变量 (root): 我们将颜色、最大宽度等常用值定义为变量,这样,如果想更换主题色,只需修改 root 中的 --primary-color 即可,所有用到这个变量的地方都会自动更新。
  • 模块化 CSS: 样式按功能(如 .main-header, .features)组织,而不是按页面(如 .home-header, .about-header),方便复用。

如何使用这个模板?

  1. 保存文件: 将上面的代码保存为 index.html
  2. : 修改 <title>、Logo 文本、导航链接、<h1>, <p> 标签内的文字为你自己的内容。
  3. 替换图片: 替换 hero 区域的 background-image URL 为你自己的图片链接。
  4. 添加更多页面: 你可以复制 index.html 的结构,创建 about.html, contact.html 等,确保所有页面都链接到同一个 CSS 和 JS 文件,以便保持样式一致。
  5. 丰富功能: 在此基础上,你可以添加轮播图、表单、更多的动画效果等。

这个模板为您提供了一个坚实、现代且易于扩展的起点,希望对您有帮助!

html 5 自适应屏幕 中文模板
(图片来源网络,侵删)