html5是浏览器原生支持的现代网页标准,需严格遵循文档结构三要求:DOCTYPE必须首行小写无空格、html标签须含lang属性、meta charset须在head内靠前;语义化标签影响seo与可访问性;多媒体标签需兼容格式与属性;其价值在于结构、样式、脚本协同及降级友好设计。

html5 是浏览器原生支持的现代网页标准,不是“HTML4 加个 5”,也不是某种框架或工具——它是一套被主流浏览器共同实现的、可直接写的语言规范。
HTML5 文档结构必须写对的三处硬性要求
很多初学者页面乱码、样式错位、移动端缩放异常,根源都在文档开头没写准:
必须是文件第一行,且严格小写、无空格、无引号;写成或漏掉会触发怪异模式(Quirks Mode)-
中的lang属性虽不报错,但缺失会导致屏幕阅读器语调错误、SEO 语义降权 -
必须在内且靠前;放在后面可能让中文标题显示为方块
我的第一个HTML5页面 欢迎
语义化标签不是“换汤不换药”,而是影响 dom 和 SEO 的底层结构
用
和用
渲染效果可能一样,但机器理解完全不同:
- 搜索引擎爬虫把
当作唯一主体内容区,多个会降低页面权重 -
被屏幕阅读器识别为导航区,用户可一键跳转;
则完全不可访问需配合
使用才有层级语义,单独用等于白用–
多媒体标签
和不是“贴上去就能播”直接写
在部分安卓机或 safari 上大概率静音/黑屏,原因很实际:- 缺少
controls属性:用户看不到播放控件,误以为没加载 - 未提供备用格式:MP4(H.264+AAC)兼容最好,但 WebM 更省带宽;建议双源写法
- 自动播放限制:chrome/Safari 要求
muted+autoplay才允许静音自动播
别把 HTML5 当成“功能堆砌”,它的价值在约束与协同
HTML5 本身不提供动画、校验逻辑或存储封装——它只定义
这样的语义输入类型,而校验行为由浏览器决定;它暴露localStorage接口,但不负责加密或同步。立即学习“前端免费学习笔记(深入)”;
真正起作用的是三者咬合:
结构 + css3
:valid/:invalid伪类 + javaScript 的checkValidity()方法。脱离任一环,所谓“HTML5 表单增强”就只剩一个好看的 placeholder。最容易被忽略的一点:HTML5 的所有新特性都默认“降级友好”——
里写文字,老浏览器就显示那段文字;在 IE8 里就是普通块级元素。这不是巧合,是设计前提。强行用 Modernizr 做“有无检测”再加载 polyfill,反而破坏了这个前提。