html文档声明必须为且位于首行,大小写、空格、bom或注释均会导致怪异模式;须紧贴开头,否则中文乱码;语义化标签影响可访问性、seo与css维护;表格必须包含和,即使为空。

HTML文档声明必须写在第一行,且只用
不写或写错会导致浏览器进入怪异模式(Quirks Mode),页面布局可能整体错位,尤其是盒模型计算、百分比宽高、浮动行为会和预期不一致。常见错误包括:(小写)、<code>(大写)、多空格或换行前置、前面有BOM字符或注释。
实际开发中,VS Code保存文件时若编码不是UTF-8无BOM,也可能悄悄插入不可见字符,导致失效。建议检查文件开头是否“真正干净”——用十六进制编辑器确认前两个字节是<code>3C 21(即)。
<meta charset="UTF-8">必须紧贴开始后立即出现
位置靠后(比如在<title></title>之后)会让浏览器先按默认编码(如ISO-8859-1)解析前面的内容,中文直接变乱码,再切编码也来不及修复已渲染部分。尤其当<title></title>里含中文时,标签页标题就可能显示为方块。
注意点:
如果你了解HTML,CSS和JavaScript,您已经拥有所需的工具开发Android应用程序。本动手本书展示了如何使用这些开源web标准设计和建造,可适应任何Android设备的应用程序 - 无需使用Java。您将学习如何创建一个在您选择的平台的Android友好的网络应用程序,然后转换与自由PhoneGap框架到一个原生的Android应用程序。了解为什么设备无关的移动应用是未来的潮流,并开始构建应用程序,提供更
- 它必须是
内第一个或第二个标签(仅允许在<title></title>之前) - 不要写成
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">——这是HTML4写法,冗余且易出错 - 编辑器编码设置要和
charset一致,VS Code右下角确认显示“UTF-8”,而非“GBK”或带BOM的UTF-8
语义化标签不是“可选装饰”,而是DOM结构与可访问性的基础
用<div class="header">代替<code><header></header>,表面看渲染没区别,但实际影响三件事:屏幕阅读器无法识别区域意图、搜索引擎降低内容权重、CSS维护时失去天然层级约束(比如main > article > section比一堆.wrapper > .content > .block更可靠)。
典型误用场景:
- 把
<button></button>换成<div onclick="...">——丢失键盘焦点、空格/回车触发、<code>disabled状态、无障碍角色 - 表单控件不用
<label for="xxx"></label>或包裹<input>——点击文字无法聚焦,视障用户操作路径断裂 - 纯图标按钮缺
aria-label或<span></span>文本——语音助手读不出功能意图










