示例1:最基础的HTML网页结构

这个例子展示了任何HTML文件都必须具备的骨架,它非常简单,但包含了所有核心元素。

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>
</head>
<body>
    <h1>欢迎来到我的网站!</h1>
    <p>这是一个段落,包含了<b>粗体</b>和<i>斜体</i>文本。</p>
</body>
</html>

代码解释:

  • <!DOCTYPE html>: 声明文档类型,告诉浏览器这是一个HTML5文档。
  • <html lang="zh-CN">: 根元素,包裹整个页面内容。lang属性指定了页面的语言,有助于搜索引擎和屏幕阅读器。
  • <head>: 包含页面的元数据(metadata),这些数据不会直接显示在页面上,但提供关于页面的信息。
    • <meta charset="UTF-8">: 声明字符编码为UTF-8,可以正确显示中文等大部分语言。
    • <meta name="viewport" ...>: 响应式设计必需的标签,确保在移动设备上正确缩放。
    • <title>: 页面的标题,会显示在浏览器标签栏中,也是搜索引擎优化的关键。
  • <body>: 包含所有可见的页面内容,如标题、段落、图片、链接等。
    • <h1>: 一级标题,最重要的标题。
    • <p>: 段落标签。
    • <b>: 粗体文本(语义上只是强调样式)。
    • <i>: 斜体文本(语义上只是强调样式)。

示例2:带样式的个人简介页面

这个例子引入了CSS(层叠样式表),用于美化页面,我们将使用内部样式表<style>标签)来编写CSS。

文件名: profile.html

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">个人简介 - 张三</title>
    <style>
        /* 全局样式 */
        body {
            font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
            background-color: #f4f4f9;
            color: #333;
            margin: 0;
            padding: 20px;
            line-height: 1.6;
        }
        /* 容器样式 */
        .container {
            max-width: 800px;
            margin: 20px auto;
            background-color: #ffffff;
            padding: 30px;
            border-radius: 8px;
            box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
        }
        /* 标题样式 */
        h1 {
            color: #0056b3;
            border-bottom: 2px solid #e0e0e0;
            padding-bottom: 10px;
        }
        /* 头像样式 */
        .avatar {
            width: 150px;
            height: 150px;
            border-radius: 50%; /* 使图片变为圆形 */
            float: right; /* 图片靠右浮动 */
            margin: 0 0 20px 20px; /* 外边距 */
            border: 5px solid #fff;
            box-shadow: 0 0 10px rgba(0,0,0,0.2);
        }
        /* 清除浮动,防止父元素高度塌陷 */
        .clearfix::after {
            content: "";
            display: table;
            clear: both;
        }
        /* 链接样式 */
        a {
            color: #007bff;
            text-decoration: none;
        }
        a:hover {
            text-decoration: underline;
        }
    </style>
</head>
<body>
    <div class="container clearfix">
        <img src="https://via.placeholder.com/150" alt="张三的头像" class="avatar">
        <h1>你好,我是张三</h1>
        <p>我是一名热爱前端开发的工程师,专注于创建美观、高效且用户友好的网站,我对HTML、CSS和JavaScript充满热情,并持续学习最新的Web技术。</p>
        <h2>技能</h2>
        <ul>
            <li>HTML5 & CSS3</li>
            <li>JavaScript (ES6+)</li>
            <li>响应式设计</li>
            <li>版本控制</li>
        </ul>
        <h2>联系方式</h2>
        <p>如果你想与我联系,请通过以下方式:</p>
        <p>
            <a href="mailto:zhangsan@example.com">发送邮件</a> | 
            <a href="https://github.com/zhangsan" target="_blank">访问我的GitHub</a>
        </p>
    </div>
</body>
</html>

代码解释:

  • <style>: 在<head>标签内,用于编写CSS代码。
  • CSS选择器:
    • body: 选择<body>元素,设置全局字体、背景色等。
    • .container: 选择class属性为container的元素,将其设置为内容容器,并添加了居中、背景色、圆角和阴影效果。
    • h1, p, ul, li: 选择对应的HTML标签,进行样式定义。
    • .avatar: 选择classavatar的图片,设置了圆形、浮动等样式。
    • a:hover: 这是一个伪类,当鼠标悬停在<a>链接上时触发,改变下划线样式。
  • 新HTML元素:
    • <div>: 一个通用的容器块,用于组织和布局页面内容。
    • <img>: 图片标签。src是图片地址,alt是替代文本(当图片无法显示时出现,对SEO和无障碍访问很重要)。
    • <ul>: 无序列表。
    • <li>: 列表项。
    • <a>: 超链接。href指定链接地址,target="_blank"表示在新标签页中打开链接。

示例3:带交互功能的待办事项列表

这个例子引入了JavaScript,用于实现页面的动态交互功能,我们将使用内部脚本<script>标签)来编写JS。

文件名: todo.html

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">待办事项列表</title>
    <style>
        /* 基础样式,与上一个示例类似 */
        body {
            font-family: Arial, sans-serif;
            background-color: #f0f2f5;
            color: #333;
            display: flex;
            justify-content: center;
            align-items: flex-start;
            min-height: 100vh;
            margin: 0;
            padding-top: 50px;
        }
        .todo-container {
            width: 90%;
            max-width: 500px;
            background: #fff;
            padding: 20px;
            border-radius: 8px;
            box-shadow: 0 4px 12px rgba(0,0,0,0.1);
        }
        h1 {
            text-align: center;
            color: #2c3e50;
        }
        #todo-input {
            width: 70%;
            padding: 10px;
            border: 1px solid #ddd;
            border-radius: 4px;
        }
        #add-btn {
            width: 25%;
            padding: 10px;
            background-color: #3498db;
            color: white;
            border: none;
            border-radius: 4px;
            cursor: pointer;
        }
        #add-btn:hover {
            background-color: #2980b9;
        }
        #todo-list {
            list-style-type: none;
            padding: 0;
            margin-top: 20px;
        }
        .todo-item {
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding: 12px;
            border-bottom: 1px solid #eee;
            background-color: #fdfdfd;
        }
        .todo-item.completed {
            text-decoration: line-through;
            color: #aaa;
            background-color: #f9f9f9;
        }
        .delete-btn {
            background-color: #e74c3c;
            color: white;
            border: none;
            padding: 5px 10px;
            border-radius: 4px;
            cursor: pointer;
        }
        .delete-btn:hover {
            background-color: #c0392b;
        }
    </style>
</head>
<body>
    <div class="todo-container">
        <h1>我的待办事项</h1>
        <input type="text" id="todo-input" placeholder="输入新任务...">
        <button id="add-btn">添加</button>
        <ul id="todo-list">
            <!-- 待办事项将通过JavaScript动态添加到这里 -->
        </ul>
    </div>
    <script>
        // 获取页面上的元素
        const todoInput = document.getElementById('todo-input');
        const addBtn = document.getElementById('add-btn');
        const todoList = document.getElementById('todo-list');
        // 为“添加”按钮添加点击事件监听器
        addBtn.addEventListener('click', addTodo);
        // 为输入框添加“回车”键事件监听器
        todoInput.addEventListener('keypress', function(event) {
            // 检查是否按下了“Enter”键
            if (event.key === 'Enter') {
                addTodo();
            }
        });
        // 添加待办事项的函数
        function addTodo() {
            const todoText = todoInput.value.trim(); // 获取输入值并去除首尾空格
            if (todoText === '') {
                alert('请输入待办事项!');
                return;
            }
            // 创建列表项
            const li = document.createElement('li');
            li.className = 'todo-item';
            // 创建任务文本
            const span = document.createElement('span');
            span.textContent = todoText;
            // 创建完成按钮
            const completeBtn = document.createElement('button');
            completeBtn.textContent = '完成';
            completeBtn.className = 'complete-btn';
            completeBtn.addEventListener('click', function() {
                li.classList.toggle('completed');
            });
            // 创建删除按钮
            const deleteBtn = document.createElement('button');
            deleteBtn.textContent = '删除';
            deleteBtn.className = 'delete-btn';
            deleteBtn.addEventListener('click', function() {
                todoList.removeChild(li);
            });
            // 将元素添加到列表项中
            li.appendChild(span);
            li.appendChild(completeBtn);
            li.appendChild(deleteBtn);
            // 将列表项添加到列表中
            todoList.appendChild(li);
            // 清空输入框
            todoInput.value = '';
        }
    </script>
</body>
</html>

代码解释:

  • HTML部分:
    • 新增了<input type="text">用于输入文本。
    • 新增了<button>用于触发添加操作。
    • <ul id="todo-list">用于存放动态生成的待办事项。id是唯一的,方便JavaScript通过document.getElementById()找到它。
  • CSS部分:
    • 新增了针对输入框、按钮和待办事项列表项的样式,使其看起来更美观。
    • .completed类用于标记已完成的任务,通过添加删除线和灰色背景来区分。
  • JavaScript部分:
    • <script>: 通常放在<body>标签的末尾,这样可以确保在脚本执行前,HTML元素已经被加载完毕。
    • document.getElementById(): 通过元素的ID来获取DOM(文档对象模型)元素。
    • addEventListener(): 为元素添加事件监听器,例如'click'(点击)和'keypress'(键盘按下)。
    • function addTodo(): 定义一个函数来封装添加待办事项的逻辑。
    • document.createElement(): 动态创建新的HTML元素(如<li>, <span>, <button>)。
    • element.textContent: 设置或获取元素的文本内容。
    • element.className: 设置元素的class属性。
    • element.appendChild(): 将一个子元素添加到父元素中。
    • element.classList.toggle(): 切换元素的类名,如果类名存在则移除,不存在则添加。
    • parentElement.removeChild(): 从父元素中移除一个子元素。

如何使用这些代码

  1. 创建文件: 在你的电脑上创建一个新的文件夹,my-website
  2. 保存代码: 在文件夹中分别创建三个文件:index.html, profile.html, todo.html
  3. 复制粘贴: 将上面对应的代码分别复制并粘贴到对应的文件中。
  4. 查看效果:
    • 对于 profile.html,你可以直接用浏览器打开它,如果想用本地的图片替换头像,只需将一张图片(my-avatar.jpg)放在同一个文件夹下,然后将<img src="..." />中的地址改为"my-avatar.jpg"即可。
    • 对于 todo.html,直接用浏览器打开,你就可以看到一个可以正常工作的待办事项应用了。

这些示例从静态到动态,从简单到复杂,希望能为你提供一个清晰的HTML网页开发学习路径,你可以基于这些代码进行修改和扩展,创造出更丰富的功能。