HTML是构建网页的骨架语言,无论你以后想学前端开发、做个人博客,还是写接口文档,都绕不开它。这篇文章把HTML的核心知识点和初学者最常问的问题整理到一起,从基本结构讲到常用标签,再集中解答一批高频疑问,争取让你看完就能动手写出自己的第一个页面。

HTML的基本结构是什么样的
一个标准的HTML文档由文档声明、根元素和两大区块组成。<html>是根元素,<head>里放的是给浏览器和搜索引擎看的信息,比如字符编码、页面标题;<body>里放的才是用户在页面上能看到的内容。很多新手第一个页面显示乱码,问题就出在head里没有声明编码。
下面是一个最简但结构完整的模板,建议保存下来作为每次新建页面的起点:
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>我的第一个页面</title> </head> <body> <h1>你好,HTML</h1> <p>这是一个段落。</p> </body> </html>
第一行的<!DOCTYPE html>不是标签,而是文档类型声明,告诉浏览器当前页面使用HTML5标准。漏写它时,浏览器可能进入怪异模式,导致页面的盒模型计算方式出现偏差,写CSS时就会莫名其妙对不齐。<meta charset="UTF-8">则解决了中文乱码问题,必须放在head的第一个位置,越早解析越好。
常用标签有哪些,分别怎么用
HTML标签数量不少,但日常真正高频使用的也就二三十个。可以按功能分成几类来记:文本类、结构类、链接图片类、列表类、表格和表单类。
文本类标签最基础,<h1>到<h6>表示六级标题,一个页面建议只用一个h1;<p>是段落;<strong>表示强调,<em>表示语气上的着重。结构类是HTML5新增的语义化标签,比如<header>、<nav>、<main>、<footer>、<article>、<section>,用它们代替一堆div,代码可读性会明显提升,搜索引擎也更容易理解页面结构。
<header>
<nav>
<a href="/index.html">首页</a>
<a href="/about.html">关于我们</a>
</nav>
</header>
<main>
<article>
<h2>文章标题</h2>
<section>
<p>正文内容……</p>
</section>
</article>
</main>
<footer>
<p>版权信息</p>
</footer>链接和图片是网页的灵魂。<a>通过href属性指定跳转地址,加上target="_blank"可以在新标签页打开;<img>必须有src和alt两个属性,alt是图片加载失败时的替代文字,也是给屏幕阅读器看的无障碍描述,图省事不写alt是不规范的做法。列表分为有序列表<ol>和无序列表<ul>,二者内部的每一项都必须用<li>包裹,直接在ul里写文字虽然浏览器容错能显示,但属于无效结构。
表格和表单相对复杂。表格用<table>嵌套<tr>(行)、<th>(表头单元格)、<td>(普通单元格);表单用<form>配合<input>、<select>、<textarea>、<button>实现数据收集。input的type属性决定了控件形态,text、password、radio、checkbox、file、email等各有用途,做用户注册登录页面时天天打交道。
初学者最常问的问题解答
问题一:块级元素和行内元素有什么区别?块级元素(如div、p、h1、table)独占一行,可以设置宽高;行内元素(如span、a、strong)在一行内排列,设置宽高无效。还有一个中间态叫行内块元素(inline-block),既能同行排列又能设宽高,图片img默认就是这种表现。理解这个区别是后面学CSS布局的前提。
问题二:为什么我写的标签没生效?常见原因有三种:一是标签没有正确闭合,比如只写了<p>忘了</p>;二是中文标点混入代码,把英文引号写成了中文引号;三是文件扩展名保存成了txt而不是html。建议使用VS Code这类带语法高亮的编辑器,很多错误一眼就能看出来。
问题三:学HTML需要同时学CSS和JavaScript吗?HTML负责结构,CSS负责样式,JavaScript负责行为,三者各管一摊。建议先把HTML标签练熟,能独立写出结构清晰的页面,再系统学CSS美化它,最后学JavaScript加交互。硬要三样一起学,很容易在基础阶段就陷入混乱。
问题四:双引号和单引号用哪个?HTML里属性值的引号用双引号或单引号都可以,但团队协作中约定俗成用双引号,保持风格统一比选哪个更重要。另外布尔属性比如disabled、checked可以直接写属性名不赋值。
问题五:id和class怎么选?id在页面中必须唯一,常用于JS获取元素或做锚点跳转;class可以重复,用于批量添加样式。日常开发里class的使用频率远高于id,没有特殊需求时优先用class更灵活。
学习路线与练手建议
HTML上手快但要想写得规范,需要刻意练习。第一阶段把常用标签过一遍,动手做一个个人介绍页,包含标题、段落、图片、链接和列表;第二阶段做带表单的注册页面,把各种input类型都试一遍;第三阶段尝试用语义化标签还原一个新闻网站的页面结构,只搭结构不管样式。
写代码时养成两个习惯会受益很久:一是保持缩进对齐,嵌套层级一目了然;二是给关键区块写注释,比如用<!-- 导航区域 -->标明每段结构的作用。规范的HTML不仅是给人看的,也是给搜索引擎和辅助设备看的,从第一天就按标准来写,后面学CSS和JavaScript时你会感谢现在的自己。