HTML完全指南:从入门到精通

一、HTML基础概念

1.1 什么是HTML?

HTML(HyperText Markup Language,超文本标记语言)是构建网页的基础语言。它不是编程语言,而是一种标记语言,用于定义网页的结构和内容。

1.2 HTML的版本发展

  • HTML 4.01:1999年发布,经典的Web标准
  • XHTML 1.0:基于XML的严格版本
  • HTML5:2014年正式发布,引入了丰富的语义化标签和API
  • HTML5.1/5.2/5.3:持续更新和完善

1.3 HTML的基本特点

  • 简单易学:标签语法清晰,易于理解
  • 跨平台:可在各种设备和浏览器上运行
  • 可扩展:配合CSS和JavaScript实现丰富的功能
  • 免费开源:无需授权,完全免费

二、HTML文档结构

2.1 基本文档结构

html 复制代码
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="description" content="网页描述">
    <title>网页标题</title>
    <link rel="stylesheet" href="styles.css">
    <style>
        /* 内部样式 */
    </style>
</head>
<body>
    <!-- 网页内容 -->
    <script src="script.js"></script>
</body>
</html>

2.2 DOCTYPE声明

<!DOCTYPE html>告诉浏览器使用HTML5标准渲染页面。这个声明很重要,不同的DOCTYPE会影响浏览器的渲染模式。

2.3 head标签详解

head标签包含网页的元信息,不会直接显示在页面上:

  • meta标签:提供页面的元数据

    • charset:字符编码,推荐使用UTF-8
    • viewport:响应式设计必备
    • description:页面描述,SEO优化
    • keywords:关键词(现在影响较小)
    • author:作者信息
  • title标签:页面标题,显示在浏览器标签页上

  • link标签:引入外部资源

    • CSS文件:<link rel="stylesheet" href="style.css">
    • 图标:<link rel="icon" href="favicon.ico">
  • script标签:引入或编写JavaScript

三、HTML标签详解

3.1 文本标签

标题标签
html 复制代码
<h1>一级标题</h1>
<h2>二级标题</h2>
<h3>三级标题</h3>
<h4>四级标题</h4>
<h5>五级标题</h5>
<h6>六级标题</h6>

注意事项

  • 页面中h1标签通常只用一次
  • 按照层级正确使用标题标签
  • 标题标签对SEO很重要
段落和文本格式
html 复制代码
<p>段落文本</p>
<br> <!-- 换行 -->
<hr> <!-- 水平线 -->

<strong>粗体强调</strong>
<em>斜体强调</em>
<mark>标记文本</mark>
<del>删除线</del>
<ins>下划线</ins>
<sub>下标</sub>
<sup>上标</sup>
<small>小号文本</small>

3.2 列表标签

无序列表
html 复制代码
<ul>
    <li>列表项1</li>
    <li>列表项2</li>
    <li>列表项3</li>
</ul>
有序列表
html 复制代码
<ol>
    <li>第一项</li>
    <li>第二项</li>
    <li>第三项</li>
</ol>

<ol start="5" type="A">
    <li>从E开始的字母列表</li>
</ol>
定义列表
html 复制代码
<dl>
    <dt>HTML</dt>
    <dd>超文本标记语言</dd>
    <dt>CSS</dt>
    <dd>层叠样式表</dd>
</dl>

3.3 链接和图片

超链接
html 复制代码
<!-- 外部链接 -->
<a href="https://www.example.com" target="_blank">打开新窗口</a>

<!-- 内部链接 -->
<a href="about.html">关于页面</a>

<!-- 锚点链接 -->
<a href="#section1">跳转到第一节</a>

<!-- 邮件链接 -->
<a href="mailto:example@email.com">发送邮件</a>

<!-- 电话链接 -->
<a href="tel:13800138000">拨打电话</a>

<!-- 下载链接 -->
<a href="file.pdf" download>下载文件</a>

target属性值

  • _self:当前窗口(默认)
  • _blank:新窗口
  • _parent:父框架
  • _top:顶层框架
图片
html 复制代码
<img src="image.jpg" alt="图片描述" width="300" height="200">

<!-- 响应式图片 -->
<picture>
    <source media="(max-width: 600px)" srcset="small.jpg">
    <source media="(max-width: 1200px)" srcset="medium.jpg">
    <img src="large.jpg" alt="响应式图片">
</picture>

重要属性

  • src:图片路径(必需)
  • alt:替代文本(必需,用于SEO和无障碍访问)
  • width/height:宽度和高度
  • loading:懒加载(lazy

3.4 表格标签

html 复制代码
<table border="1">
    <caption>表格标题</caption>
    <thead>
        <tr>
            <th>表头1</th>
            <th>表头2</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>数据1</td>
            <td>数据2</td>
        </tr>
        <tr>
            <td colspan="2">跨两列</td>
        </tr>
        <tr>
            <td rowspan="2">跨两行</td>
            <td>数据</td>
        </tr>
        <tr>
            <td>数据</td>
        </tr>
    </tbody>
    <tfoot>
        <tr>
            <td>页脚1</td>
            <td>页脚2</td>
        </tr>
    </tfoot>
</table>

表格属性

  • border:边框宽度
  • cellpadding:单元格内边距
  • cellspacing:单元格间距
  • colspan:跨列
  • rowspan:跨行

3.5 表单标签

html 复制代码
<form action="/submit" method="POST">
    <!-- 文本输入 -->
    <label for="username">用户名:</label>
    <input type="text" id="username" name="username" required>

    <!-- 密码输入 -->
    <label for="password">密码:</label>
    <input type="password" id="password" name="password" minlength="8">

    <!-- 邮箱输入 -->
    <input type="email" placeholder="请输入邮箱">

    <!-- 数字输入 -->
    <input type="number" min="0" max="100" step="1">

    <!-- 日期选择 -->
    <input type="date">

    <!-- 文件上传 -->
    <input type="file" accept=".jpg,.png" multiple>

    <!-- 单选按钮 -->
    <input type="radio" name="gender" value="male" id="male">
    <label for="male">男</label>
    <input type="radio" name="gender" value="female" id="female">
    <label for="female">女</label>

    <!-- 复选框 -->
    <input type="checkbox" name="hobby" value="reading" id="reading">
    <label for="reading">阅读</label>

    <!-- 下拉选择 -->
    <select name="city">
        <option value="">请选择城市</option>
        <option value="beijing">北京</option>
        <option value="shanghai">上海</option>
        <option value="guangzhou">广州</option>
    </select>

    <!-- 多行文本 -->
    <textarea name="message" rows="5" cols="30"></textarea>

    <!-- 按钮 -->
    <button type="submit">提交</button>
    <button type="reset">重置</button>
    <button type="button">普通按钮</button>
</form>

表单属性详解

input type类型

  • text:文本输入
  • password:密码输入
  • email:邮箱验证
  • number:数字输入
  • tel:电话号码
  • url:网址输入
  • date:日期选择
  • time:时间选择
  • datetime-local:日期时间
  • month:月份选择
  • week:周选择
  • color:颜色选择器
  • range:滑块
  • file:文件上传
  • hidden:隐藏字段
  • radio:单选按钮
  • checkbox:复选框
  • image:图片按钮
  • submit:提交按钮
  • reset:重置按钮

验证属性

  • required:必填
  • pattern:正则表达式验证
  • min/max:最小/最大值
  • minlength/maxlength:最小/最大长度
  • step:步长

其他重要属性

  • placeholder:占位符文本
  • autocomplete:自动完成
  • autofocus:自动聚焦
  • disabled:禁用
  • readonly:只读
  • multiple:多选
  • accept:接受的文件类型

四、HTML5语义化标签

4.1 语义化的意义

使用语义化标签的好处:

  • 提高代码可读性:代码结构更清晰
  • 利于SEO优化:搜索引擎更好地理解内容
  • 提升无障碍访问:屏幕阅读器更好解析
  • 便于维护:团队协作更高效

4.2 常用语义化标签

html 复制代码
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>语义化页面结构</title>
</head>
<body>
    <!-- 页眉 -->
    <header>
        <nav>
            <ul>
                <li><a href="#home">首页</a></li>
                <li><a href="#about">关于</a></li>
                <li><a href="#contact">联系</a></li>
            </ul>
        </nav>
    </header>

    <!-- 主要内容区 -->
    <main>
        <!-- 文章 -->
        <article>
            <header>
                <h1>文章标题</h1>
                <time datetime="2026-01-01">2026年1月1日</time>
            </header>
            <p>文章内容...</p>
            <footer>
                <small>作者:张三</small>
            </footer>
        </article>

        <!-- 侧边栏 -->
        <aside>
            <h3>相关链接</h3>
            <ul>
                <li><a href="#">链接1</a></li>
                <li><a href="#">链接2</a></li>
            </ul>
        </aside>

        <!-- 分区 -->
        <section>
            <h2>分区标题</h2>
            <p>分区内容...</p>
        </section>
    </main>

    <!-- 页脚 -->
    <footer>
        <p>&copy; 2026 版权所有</p>
    </footer>
</body>
</html>

4.3 HTML5新增标签详解

结构标签

  • <header>:页眉或区块头部
  • <nav>:导航链接区域
  • <main>:主要内容区域
  • <article>:独立的文章内容
  • <section>:内容分区
  • <aside>:侧边栏或附属内容
  • <footer>:页脚或区块底部

文本标签

  • <mark>:标记文本
  • <time>:时间日期
  • <details>:可折叠的详细信息
  • <summary>:details的标题
  • <progress>:进度条
  • <meter>:度量衡
  • <wbr>:换行机会点

嵌入标签

  • <video>:视频
  • <audio>:音频
  • <canvas>:画布
  • <svg>:矢量图形
  • <iframe>:内嵌框架
html 复制代码
<!-- 视频播放 -->
<video controls width="640">
    <source src="movie.mp4" type="video/mp4">
    <source src="movie.webm" type="video/webm">
    <p>您的浏览器不支持视频播放</p>
</video>

<!-- 音频播放 -->
<audio controls>
    <source src="audio.mp3" type="audio/mpeg">
    <source src="audio.ogg" type="audio/ogg">
</audio>

<!-- 进度条 -->
<progress value="70" max="100">70%</progress>

<!-- 度量衡 -->
<meter value="0.7" min="0" max="1" low="0.3" high="0.8" optimum="0.5">70%</meter>

<!-- 可折叠内容 -->
<details>
    <summary>点击展开</summary>
    <p>这里是详细内容</p>
</details>

五、HTML属性详解

5.1 全局属性

所有HTML元素都支持的属性:

  • id:唯一标识符
  • class:类名(可多个)
  • style:内联样式
  • title:提示文本
  • lang:语言代码
  • dir:文本方向(ltr/rtl)
  • hidden:隐藏元素
  • tabindex:Tab键顺序
  • accesskey:快捷键
  • data-*:自定义数据属性
html 复制代码
<div id="unique" class="box container" style="color: red;" 
     title="提示信息" lang="zh-CN" hidden
     tabindex="1" accesskey="a"
     data-id="123" data-name="example">
    内容
</div>

5.2 事件属性

鼠标事件:

  • onclick:点击事件
  • ondblclick:双击事件
  • onmousedown:鼠标按下
  • onmouseup:鼠标释放
  • onmousemove:鼠标移动
  • onmouseover:鼠标悬停
  • onmouseout:鼠标离开

键盘事件:

  • onkeydown:按键按下
  • onkeyup:按键释放
  • onkeypress:按键输入

表单事件:

  • onsubmit:表单提交
  • onreset:表单重置
  • onchange:值改变
  • onfocus:获得焦点
  • onblur:失去焦点
html 复制代码
<button onclick="alert('点击了!')">点击我</button>
<input type="text" onfocus="this.style.background='yellow'" 
       onblur="this.style.background='white'">
<form onsubmit="return validateForm()">
    <!-- 表单内容 -->
</form>

六、HTML最佳实践

6.1 代码规范

  1. 使用小写标签<div>而不是<DIV>
  2. 正确嵌套:标签要正确关闭和嵌套
  3. 使用引号:属性值要用引号包裹
  4. 添加注释:适当添加注释说明
  5. 缩进规范:使用一致的缩进(推荐2或4空格)
html 复制代码
<!-- ✅ 好的示例 -->
<div class="container">
    <p>这是一个段落</p>
</div>

<!-- ❌ 不好的示例 -->
<DIV CLASS="container">
    <p>这是一个段落
</DIV>

6.2 性能优化

  1. 压缩HTML:去除不必要的空格和注释
  2. 异步加载:非关键JavaScript异步加载
  3. 预加载资源 :使用<link rel="preload">
  4. 延迟加载 :图片使用loading="lazy"
  5. 合理使用meta标签:减少渲染阻塞
html 复制代码
<!-- 预加载关键资源 -->
<link rel="preload" href="critical.css" as="style">
<link rel="preload" href="font.woff2" as="font" crossorigin>

<!-- 延迟加载图片 -->
<img src="image.jpg" loading="lazy" alt="描述">

<!-- 异步加载JavaScript -->
<script src="script.js" async></script>
<script src="script2.js" defer></script>

6.3 SEO优化

  1. 使用语义化标签:提高搜索引擎理解
  2. 优化title标签:简洁准确,包含关键词
  3. 完善meta描述:吸引用户点击
  4. 合理使用h1-h6:正确的标题层级
  5. 添加alt属性:图片要有描述性文本
  6. 使用结构化数据:丰富搜索结果
html 复制代码
<title>HTML完全指南 - 从入门到精通 | 我的博客</title>
<meta name="description" content="详细介绍HTML的使用方法、标签属性和最佳实践,适合初学者和进阶开发者阅读。">

<!-- 结构化数据 -->
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "HTML完全指南",
  "author": "张三",
  "datePublished": "2026-01-01"
}
</script>

6.4 无障碍访问

  1. 使用语义化标签:提高屏幕阅读器兼容性
  2. 添加alt属性:为图片提供替代文本
  3. 使用label标签:关联表单控件
  4. ARIA属性:增强可访问性
  5. 键盘导航:确保可用键盘操作
  6. 颜色对比度:保证文字可读性
html 复制代码
<!-- 表单标签关联 -->
<label for="email">邮箱:</label>
<input type="email" id="email" name="email">

<!-- ARIA属性 -->
<button aria-label="关闭对话框" aria-pressed="false">
    <span aria-hidden="true">×</span>
</button>

<!-- 跳过导航链接 -->
<a href="#main-content" class="skip-link">跳到主要内容</a>

七、常见问题与解决方案

7.1 编码问题

问题:中文显示乱码

解决

html 复制代码
<meta charset="UTF-8">

7.2 图片不显示

问题:图片路径错误

解决

html 复制代码
<!-- 相对路径 -->
<img src="images/pic.jpg" alt="图片">

<!-- 绝对路径 -->
<img src="https://example.com/images/pic.jpg" alt="图片">

<!-- 检查文件名大小写(Linux系统区分大小写) -->

7.3 链接失效

问题:链接打不开

解决

html 复制代码
<!-- 使用正确的URL格式 -->
<a href="https://www.example.com">外部链接</a>
<a href="page.html">内部链接</a>
<a href="#section">锚点链接</a>

7.4 表单提交问题

问题:表单不提交或提交失败

解决

html 复制代码
<!-- 确保action和method正确 -->
<form action="/submit" method="POST">
    <!-- 表单控件要有name属性 -->
    <input type="text" name="username">
    <button type="submit">提交</button>
</form>

八、HTML工具和资源

8.1 开发工具

  • 编辑器:VS Code、Sublime Text、WebStorm
  • 浏览器:Chrome、Firefox、Edge(都有强大的开发者工具)
  • 在线工具:CodePen、JSFiddle、StackBlitz

8.2 学习资源

  • 官方文档:MDN Web Docs
  • W3C标准https://www.w3.org/
  • 在线教程:W3Schools、菜鸟教程
  • 社区:Stack Overflow、GitHub

8.3 验证工具

  • HTML验证器https://validator.w3.org/
  • SEO检查工具:Google PageSpeed Insights
  • 无障碍检查:WAVE、axe DevTools

九、总结

HTML是Web开发的基础,掌握HTML是成为一名前端开发者的第一步。通过本文的学习,你应该掌握了:

  1. HTML的基本概念和文档结构
  2. 常用标签的使用方法
  3. 表单和表格的应用
  4. HTML5语义化标签的优势
  5. HTML属性的详细使用
  6. 最佳实践和性能优化
  7. SEO和无障碍访问的注意事项

学习建议

  • 多动手实践,创建自己的网页
  • 参考优秀的开源项目代码
  • 关注HTML的最新发展和标准
  • 结合CSS和JavaScript深入学习
  • 养成良好的编码习惯

HTML的学习是一个持续的过程,随着技术的发展,HTML也在不断进化。保持学习的热情,不断提升自己的技能,你一定能成为一名优秀的前端开发者!

十、示例代码

下面是一个完整的HTML页面示例,综合运用了本文介绍的各种标签和技巧:

html 复制代码
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="description" content="一个完整的HTML页面示例">
    <title>我的个人主页</title>
    <link rel="icon" href="favicon.ico">
    <style>
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }
        body {
            font-family: 'Microsoft YaHei', sans-serif;
            line-height: 1.6;
            color: #333;
        }
        header {
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
            color: white;
            padding: 2rem;
            text-align: center;
        }
        nav ul {
            list-style: none;
            display: flex;
            justify-content: center;
            gap: 2rem;
            margin-top: 1rem;
        }
        nav a {
            color: white;
            text-decoration: none;
            padding: 0.5rem 1rem;
            border-radius: 5px;
            transition: background 0.3s;
        }
        nav a:hover {
            background: rgba(255,255,255,0.2);
        }
        .container {
            max-width: 1200px;
            margin: 0 auto;
            padding: 2rem;
            display: grid;
            grid-template-columns: 2fr 1fr;
            gap: 2rem;
        }
        main article {
            background: white;
            padding: 2rem;
            border-radius: 10px;
            box-shadow: 0 2px 10px rgba(0,0,0,0.1);
            margin-bottom: 2rem;
        }
        aside {
            background: white;
            padding: 2rem;
            border-radius: 10px;
            box-shadow: 0 2px 10px rgba(0,0,0,0.1);
        }
        footer {
            background: #333;
            color: white;
            text-align: center;
            padding: 2rem;
            margin-top: 2rem;
        }
        .btn {
            display: inline-block;
            padding: 0.8rem 1.5rem;
            background: #667eea;
            color: white;
            border: none;
            border-radius: 5px;
            cursor: pointer;
            transition: background 0.3s;
        }
        .btn:hover {
            background: #764ba2;
        }
        @media (max-width: 768px) {
            .container {
                grid-template-columns: 1fr;
            }
        }
    </style>
</head>
<body>
    <header>
        <h1>欢迎来到我的主页</h1>
        <p>探索HTML的精彩世界</p>
        <nav>
            <ul>
                <li><a href="#home">首页</a></li>
                <li><a href="#about">关于我</a></li>
                <li><a href="#skills">技能</a></li>
                <li><a href="#contact">联系我</a></li>
            </ul>
        </nav>
    </header>

    <div class="container">
        <main>
            <section id="home">
                <article>
                    <h2>🏠 首页</h2>
                    <p>这是一个使用HTML5语义化标签构建的现代网页。展示了HTML的各种特性和最佳实践。</p>
                    <img src="https://via.placeholder.com/600x300" alt="示例图片" width="600" height="300" loading="lazy">
                </article>
            </section>

            <section id="about">
                <article>
                    <h2>👤 关于我</h2>
                    <p>我是一名前端开发工程师,热爱Web开发,专注于创建优雅的用户界面和良好的用户体验。</p>
                    <details>
                        <summary>点击查看更多信息</summary>
                        <p>我有5年的Web开发经验,熟练掌握HTML、CSS、JavaScript等前端技术。</p>
                    </details>
                </article>
            </section>

            <section id="skills">
                <article>
                    <h2>💻 技能展示</h2>
                    <h3>前端技术</h3>
                    <ul>
                        <li><strong>HTML5</strong> - 熟练掌握语义化标签</li>
                        <li><strong>CSS3</strong> - 精通Flexbox和Grid布局</li>
                        <li><strong>JavaScript</strong> - ES6+语法和异步编程</li>
                        <li><strong>框架</strong> - Vue.js、React</li>
                    </ul>
                    
                    <h3>技能水平</h3>
                    <label for="html-progress">HTML掌握程度:</label>
                    <progress id="html-progress" value="95" max="100">95%</progress>
                    <br>
                    <label for="css-progress">CSS掌握程度:</label>
                    <progress id="css-progress" value="90" max="100">90%</progress>
                    <br>
                    <label for="js-progress">JavaScript掌握程度:</label>
                    <progress id="js-progress" value="85" max="100">85%</progress>
                </article>
            </section>

            <section id="contact">
                <article>
                    <h2>📬 联系我</h2>
                    <form action="#" method="POST" onsubmit="return validateForm()">
                        <div style="margin-bottom: 1rem;">
                            <label for="name">姓名:</label>
                            <input type="text" id="name" name="name" required placeholder="请输入您的姓名">
                        </div>
                        <div style="margin-bottom: 1rem;">
                            <label for="email">邮箱:</label>
                            <input type="email" id="email" name="email" required placeholder="请输入您的邮箱">
                        </div>
                        <div style="margin-bottom: 1rem;">
                            <label for="message">留言:</label>
                            <textarea id="message" name="message" rows="5" cols="30" required placeholder="请输入您的留言"></textarea>
                        </div>
                        <button type="submit" class="btn">发送留言</button>
                    </form>
                </article>
            </section>
        </main>

        <aside>
            <h3>🔗 快速链接</h3>
            <ul>
                <li><a href="#">我的博客</a></li>
                <li><a href="#">GitHub仓库</a></li>
                <li><a href="#">项目作品</a></li>
                <li><a href="#">学习资源</a></li>
            </ul>

            <h3 style="margin-top: 2rem;">📅 最近更新</h3>
            <ul>
                <li><time datetime="2026-01-15">2026-01-15</time> - 发布新文章</li>
                <li><time datetime="2026-01-10">2026-01-10</time> - 更新项目</li>
                <li><time datetime="2026-01-05">2026-01-05</time> - 修复bug</li>
            </ul>

            <h3 style="margin-top: 2rem;">🎯 目标</h3>
            <p>成为一名技术全面的前端架构师,为用户创造更好的Web体验。</p>
        </aside>
    </div>

    <footer>
        <p>&copy; 2026 我的主页. 保留所有权利。</p>
        <p>使用HTML5、CSS3构建 | 响应式设计</p>
        <nav style="margin-top: 1rem;">
            <a href="#">隐私政策</a> | 
            <a href="#">使用条款</a> | 
            <a href="#">网站地图</a>
        </nav>
    </footer>

    <script>
        function validateForm() {
            const name = document.getElementById('name').value;
            const email = document.getElementById('email').value;
            const message = document.getElementById('message').value;
            
            if (name.trim() === '') {
                alert('请输入姓名');
                return false;
            }
            
            if (email.trim() === '') {
                alert('请输入邮箱');
                return false;
            }
            
            if (message.trim() === '') {
                alert('请输入留言内容');
                return false;
            }
            
            alert('留言提交成功!');
            return true;
        }
    </script>
</body>
</html>

这个示例展示了HTML的各种特性和最佳实践,包括语义化标签、表单验证、响应式设计等。你可以将这段代码保存为HTML文件,在浏览器中打开查看效果。


希望这篇HTML详解教程对你有所帮助!如果你有任何问题或建议,欢迎留言讨论。持续学习,不断进步,让我们一起在Web开发的道路上越走越远!

相关推荐
a1117764 小时前
Markdown生成思维导图(html 开源)
前端·开源·html
我命由我123454 小时前
React - state、state 的简写方式、props、props 的简写方式、类式组件中的构造器与 props、函数式组件使用 props
前端·javascript·react.js·前端框架·html·html5·js
雾岛心情5 小时前
【HTML&CSS】HTML为文字添加格式和内容
前端·css·html
好名字08215 小时前
Vue2转Word方法(html-docx-js库)
javascript·html·word
梁正雄7 小时前
Python前端-2-css基础
前端·python·html
我命由我123458 小时前
React - React 初识、创建虚拟 DOM 的两种方式、jsx 语法规则、React 定义组件
前端·javascript·react.js·前端框架·html·html5·js
wsad053210 小时前
Vue.js 整合传统 HTML 项目:注册页面实战教程
前端·vue.js·html
我是初九11 小时前
【遇见狂神说|前端】HTML5
前端·html
a11177611 小时前
堆叠式流程图编辑器(html 开源)
开发语言·前端·javascript·开源·编辑器·html·流程图