在数字化时代,网页开发已经成为一项至关重要的技能。HTML5作为最新的网页标准,为开发者提供了更多的功能和灵活性。本篇文章将为你介绍10个实用的HTML5实战案例,让你轻松上手,掌握网页开发的精髓。

1. 制作响应式网页

响应式网页设计是现代网页开发的核心。以下是一个简单的响应式网页案例:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>响应式网页</title>
    <style>
        body {
            font-family: Arial, sans-serif;
        }
        .container {
            max-width: 800px;
            margin: 0 auto;
        }
        @media (max-width: 600px) {
            .container {
                padding: 10px;
            }
        }
    </style>
</head>
<body>
    <div class="container">
        <h1>响应式网页示例</h1>
        <p>这是一个响应式网页,可以根据屏幕大小自动调整布局。</p>
    </div>
</body>
</html>

2. 制作轮播图

轮播图是网页中常见的元素,以下是一个使用HTML5和CSS3制作的轮播图案例:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>轮播图</title>
    <style>
        .carousel {
            position: relative;
            width: 500px;
            height: 300px;
            overflow: hidden;
        }
        .carousel img {
            width: 100%;
            display: none;
        }
        .carousel img.active {
            display: block;
        }
    </style>
</head>
<body>
    <div class="carousel">
        <img src="image1.jpg" alt="图片1" class="active">
        <img src="image2.jpg" alt="图片2">
        <img src="image3.jpg" alt="图片3">
    </div>
</body>
</html>

3. 制作进度条

进度条可以用来显示任务完成情况,以下是一个简单的进度条案例:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>进度条</title>
    <style>
        .progress-bar {
            width: 300px;
            height: 20px;
            background-color: #eee;
            position: relative;
        }
        .progress {
            width: 0%;
            height: 100%;
            background-color: #4CAF50;
            text-align: center;
            line-height: 20px;
            color: white;
        }
    </style>
</head>
<body>
    <div class="progress-bar">
        <div class="progress">0%</div>
    </div>
</body>
</html>

4. 制作倒计时

倒计时可以用来提醒用户时间紧迫,以下是一个简单的倒计时案例:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>倒计时</title>
    <script>
        function countdown() {
            var now = new Date();
            var end = new Date(now.getFullYear() + 1, now.getMonth(), now.getDate());
            var seconds = Math.floor((end - now) / 1000);
            var minutes = Math.floor(seconds / 60);
            var hours = Math.floor(minutes / 60);
            var days = Math.floor(hours / 24);
            hours %= 24;
            minutes %= 60;
            seconds %= 60;
            document.getElementById("countdown").innerHTML = days + "天 " + hours + "小时 " + minutes + "分钟 " + seconds + "秒";
            setTimeout(countdown, 1000);
        }
    </script>
</head>
<body onload="countdown()">
    <div id="countdown"></div>
</body>
</html>

5. 制作折叠面板

折叠面板可以用来展示更多内容,以下是一个简单的折叠面板案例:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>折叠面板</title>
    <style>
        .collapse {
            border: 1px solid #ccc;
            padding: 10px;
        }
        .collapse h3 {
            cursor: pointer;
        }
        .collapse p {
            display: none;
        }
    </style>
</head>
<body>
    <div class="collapse">
        <h3>标题1</h3>
        <p>内容1</p>
    </div>
    <div class="collapse">
        <h3>标题2</h3>
        <p>内容2</p>
    </div>
</body>
</html>

6. 制作地图标记

地图标记可以用来展示地理位置,以下是一个简单的地图标记案例:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>地图标记</title>
    <style>
        #map {
            width: 500px;
            height: 300px;
        }
    </style>
</head>
<body>
    <div id="map"></div>
    <script>
        var map = new BMap.Map("map");
        var point = new BMap.Point(116.404, 39.915);
        map.centerAndZoom(point, 15);
        var marker = new BMap.Marker(point);
        map.addOverlay(marker);
    </script>
</body>
</html>

7. 制作日历

日历可以用来展示日期和时间,以下是一个简单的日历案例:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>日历</title>
    <style>
        .calendar {
            width: 300px;
            border-collapse: collapse;
        }
        .calendar th,
        .calendar td {
            border: 1px solid #ccc;
            padding: 5px;
            text-align: center;
        }
        .calendar th {
            background-color: #f0f0f0;
        }
    </style>
</head>
<body>
    <table class="calendar">
        <thead>
            <tr>
                <th>日</th>
                <th>一</th>
                <th>二</th>
                <th>三</th>
                <th>四</th>
                <th>五</th>
                <th>六</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>
            </tr>
            <tr>
                <td>8</td>
                <td>9</td>
                <td>10</td>
                <td>11</td>
                <td>12</td>
                <td>13</td>
                <td>14</td>
            </tr>
            <tr>
                <td>15</td>
                <td>16</td>
                <td>17</td>
                <td>18</td>
                <td>19</td>
                <td>20</td>
                <td>21</td>
            </tr>
            <tr>
                <td>22</td>
                <td>23</td>
                <td>24</td>
                <td>25</td>
                <td>26</td>
                <td>27</td>
                <td>28</td>
            </tr>
            <tr>
                <td>29</td>
                <td>30</td>
                <td>31</td>
                <td></td>
                <td></td>
                <td></td>
                <td></td>
            </tr>
        </tbody>
    </table>
</body>
</html>

8. 制作图片懒加载

图片懒加载可以优化网页加载速度,以下是一个简单的图片懒加载案例:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>图片懒加载</title>
    <style>
        img {
            width: 300px;
            height: 200px;
            display: block;
        }
    </style>
</head>
<body>
    <img src="placeholder.jpg" data-src="image1.jpg" alt="图片1">
    <img src="placeholder.jpg" data-src="image2.jpg" alt="图片2">
    <img src="placeholder.jpg" data-src="image3.jpg" alt="图片3">
    <script>
        var images = document.querySelectorAll("img[data-src]");
        function lazyLoad() {
            var windowHeight = window.innerHeight;
            for (var i = 0; i < images.length; i++) {
                var image = images[i];
                var rect = image.getBoundingClientRect();
                if (rect.top < windowHeight && rect.bottom >= 0) {
                    image.src = image.getAttribute("data-src");
                    image.removeAttribute("data-src");
                }
            }
        }
        window.addEventListener("scroll", lazyLoad);
        lazyLoad();
    </script>
</body>
</html>

9. 制作表单验证

表单验证可以确保用户输入的数据符合要求,以下是一个简单的表单验证案例:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>表单验证</title>
    <style>
        .error {
            color: red;
        }
    </style>
</head>
<body>
    <form>
        <label for="username">用户名:</label>
        <input type="text" id="username" name="username">
        <span class="error" id="username-error"></span>
        <br>
        <label for="password">密码:</label>
        <input type="password" id="password" name="password">
        <span class="error" id="password-error"></span>
        <br>
        <input type="submit" value="提交">
    </form>
    <script>
        var form = document.querySelector("form");
        var username = document.getElementById("username");
        var password = document.getElementById("password");
        var usernameError = document.getElementById("username-error");
        var passwordError = document.getElementById("password-error");
        form.addEventListener("submit", function (e) {
            e.preventDefault();
            if (username.value === "") {
                usernameError.innerHTML = "用户名不能为空";
            } else {
                usernameError.innerHTML = "";
            }
            if (password.value === "") {
                passwordError.innerHTML = "密码不能为空";
            } else {
                passwordError.innerHTML = "";
            }
            if (username.value !== "" && password.value !== "") {
                alert("提交成功!");
            }
        });
    </script>
</body>
</html>

10. 制作全屏滚动

全屏滚动可以提升用户体验,以下是一个简单的全屏滚动案例:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>全屏滚动</title>
    <style>
        body {
            margin: 0;
            padding: 0;
        }
        .section {
            height: 100vh;
            background-color: #f0f0f0;
            text-align: center;
            line-height: 100vh;
            font-size: 24px;
        }
    </style>
</head>
<body>
    <div class="section" id="section1">全屏滚动1</div>
    <div class="section" id="section2">全屏滚动2</div>
    <div class="section" id="section3">全屏滚动3</div>
    <script>
        var sections = document.querySelectorAll(".section");
        var currentSection = 0;
        function scrollToSection(sectionIndex) {
            var position = sectionIndex * window.innerHeight;
            window.scrollTo(0, position);
            currentSection = sectionIndex;
        }
        document.addEventListener("wheel", function (e) {
            if (e.deltaY > 0) {
                scrollToSection(currentSection - 1);
            } else {
                scrollToSection(currentSection + 1);
            }
        });
        scrollToSection(0);
    </script>
</body>
</html>

通过以上10个实战案例,相信你已经掌握了HTML5网页开发的基本技能。在实际项目中,你可以根据自己的需求,灵活运用这些技能,打造出更加出色的网页作品。祝你学习愉快!