HTML5跨系统兼容问题源于路径、换行、编码等细节:需用UTF-8无BOM编码并声明,路径统一用正斜杠/,Git配置eol=lf确保换行符为LF。
HTML5 文件本身不存格式兼容问题,但路径、换行、编码常导致跨系统异常
HTML5 是纯文本标准,Windows 和 macOS 都能原生解析 index.html。真正出问题的从来不是 HTML5 规范,而是开发环境和文件交互细节:比如 Windows 用 \r\n 换行、macOS 用 \n;又比如路径分隔符写死成 "C:\assets\img.jpg" 在 macOS 上直接 404;再比如中文文件名在 UTF-8 编码未声明时,macOS Safari 可能乱码而 Chrome 忽略——这些才是实际卡点。
确保 声明且保存为 UTF-8 无 BOM
Mac 默认用 UTF-8(无 BOM),Windows 记事本却常存为 UTF-8 with BOM,BOM 会干扰某些构建工具或服务端响应头。浏览器若没看到 ,可能按系统默认编码解析,中文就变问号。
- VS Code / Sublime / WebStorm 中保存文件时选
UTF-8(不是UTF-8 with BOM) - HTML 文件开头必须有且仅有一处:
,放在最前 - 避免用 Windows 记事本新建/编辑 HTML 文件——它默认加 BOM 且不提示
路径全部用正斜杠 /,禁用反斜杠 \ 和盘符
HTML 中的 src、href、CSS 中的 url() 全部使用正斜杠。Windows 文件系统虽支持 \,但 HTML 标准只认 /;带 C:\ 或 /Users/xxx/ 的绝对路径在另一系统上必然失效。
- ✅ 正确:
、 - ❌ 错误:
、 - 本地开发建议统一用相对路径或根相对路径(
/开头),避免依赖当前工作目录
构建工具或服务器需统一换行与行尾处理
Git 默认在 Windows 上 checkout 时转 \r\n、commit 时转 \n,但若 .gitattributes 没配好,macOS 同步后可能多出空行或渲染错位;Webpack/Vite 输出的 JS/CSS 若含平台特有换行,某些老版 iOS WebView 会解析失败。