html不是编程语言,它没有逻辑、不处理数据、也不控制流程,仅定义网页结构和内容语义;必须以和开头确保浏览器正确解析,标签使用需遵循语义规则。

HTML不是编程语言,它没有逻辑、不处理数据、也不控制流程——它只是网页的骨架。你写完一段 <p>Hello</p>,浏览器就知道“这里该显示一段普通文字”,仅此而已。
为什么必须从 开始写,而不是直接写内容
浏览器需要明确知道:这段文本是 HTML,不是纯文本、不是 Markdown、更不是配置文件。缺了 ,浏览器会退化到“怪异模式”,连 <code><h1></h1> 的默认字号都可能错乱;没包在 标签里,<lang></lang> 这类语义属性就失去作用。
必须放在第一行,且不能有任何字符(包括空格、BOM)前置-
中的lang属性影响屏幕阅读器发音、搜索引擎分词,别用lang="cn"这类非法值 -
里的<meta charset="UTF-8">必须早于任何可能含中文的标签(比如<title></title>),否则标题乱码
<p></p>、<div>、<code><span></span> 到底什么时候用
新手常把三者混用,结果页面结构松散、CSS 难维护、SEO 受损。核心区别不在“能不能换行”,而在语义和嵌套规则:
-
<p></p>表示一个完整的段落,自带上下外边距,**不能嵌套标题、列表、<div>** —— 写 <code><p></p> <h2>标题</h2>是无效 HTML <div> 是无语义块级容器,适合包裹一组相关元素(比如一个卡片区域),但**不要为了加样式而滥用**;过度嵌套 <code><div> 会让 DOM 层级过深<li> <code><span></span>是无语义行内容器,只用于局部文字样式(如高亮某几个字),**不能设宽高、不能设 margin-top/bottom,对布局无影响**-
src值是相对路径时,检查是否漏掉./或多写了../;Windows 下路径用反斜杠\会导致失效,一律用正斜杠/ - 忘了写
alt属性:虽然不影响显示,但缺失alt会让图片无法被屏幕阅读器识别,也违反 WCAG 可访问性规范 - 在本地双击打开 HTML 文件(
file://协议)时,某些浏览器会拦截跨域资源(比如引用了 GitHub 图片链接),换成http://localhost启服务可绕过
<img> 加了 src 还是不显示?三个必查点
图片路径没错、文件存在、权限正常,但页面仍是空白或占位符——大概率卡在这三处:
自闭合标签写成 <br> 还是 <br>?
现代 HTML5 规范中,<br>、<img>、<input> 等自闭合标签**不需要加斜杠**,写成 <br> 不报错但属冗余。XHTML 才强制要求斜杠,而 XHTML 已基本淘汰。
真正容易出问题的是:把本该自闭合的标签写成双标签形式,比如 <img src="a.jpg"> —— 浏览器会忽略结束标签,但可能干扰后续 DOM 解析,尤其在 JS 操作时出现意外行为。











