前提本身就是错误的,得出的结论当然是错误的。
从未有任何标准化组织或浏览器厂商宣称“HTML 是向后兼容的”。
HTML5 废弃了如下四类元素和属性:
纯表现元素:basefont、big、center、font、s、strike、tt、u
框架类元素:frame、frameset、noframes
属性:align,body 的 link、vlink、alink、text,bgcolor,height,width,iframe 的 scrolling、longdesc,valign,hspace,vspace,table 的 cellpadding、cellspacing、border,header 的 profile,img 的 longdesc
其他:acronym、applet、isindex、dir
第一类是早期(尚处在没有 CSS 的时代)用于网页展示某些特殊效果的元素,本身不具有语义化,在 HTML4.01 时就可以完全使用 CSS 替代,HTML5 中废弃它们转而提倡采用语义化的元素就是顺理成章了。
第二类是因为这类元素的早期实现上都存在安全性和可用性上的问题,所以被废除了。
第三类是因为全部都可以用 CSS 来代替,出于文档与样式分离的考虑,干脆不再让 HTML 元素本身负责任何样式上的设置,转而统一交由 CSS 处理。
第四类是因为本来这些元素就不是 HTML 里的标准元素,而是浏览器厂商自行实现、约定俗成的。例如 applet,是早期浏览器支持 Java Web 的一种实现,现在这项技术早就已经不再被使用了,所以直接废弃掉。