🎶 Sym - 一款用 Java 实现的现代化社区(论坛/BBS/社交网络/博客)平台

📕 思源笔记 - 一款桌面端笔记应用,支持 Windows、Mac 和 Linux

🎸 Solo - B3log 分布式社区的博客端节点,欢迎加入下一代社区网络

♏ Vditor - 一款浏览器端的 Markdown 编辑器

HTML 规范和浏览器实现存在什么区别?

2018-12-20

回答

HTML5 等 HTML 规范定义了一系列文档必须遵循的规则,以便规范能够“有效”的执行。此外,规范提供了浏览器必须如何去解析和渲染文档等诸如此类的说明。

如果一个浏览器在处理文档上和规范中的规则保持一直,就可以说他已经支持了规范。到目前为止,还没有浏览器能够支持所有的 HTML5 规范(主流浏览器已经支持了绝大部分),这样一来,开发人员就必须考虑他们的产品或项目需要支持哪些浏览器,他们的代码是否能在这些浏览器中保持一直或是否需要进行优雅降级等。尽管目前情况有了很大改善,但跨浏览器支持依旧是开发者所头疼的问题。

加分回答

  • 无效文档可能包含任何内容,所以规范也无法对其进行全面的制定。因此,那些没有包含在内的规范就只能移交给了浏览器自己了。
  • 但 HTML5 为无效的 HTML5 文档定义了部分规则(如:语法错误、属性限制等)。其完整的解析规则,约束了浏览器在发生 语法错误 时需返回完全相同的结果。
  • <!DOCTYPE> 可以告知浏览器使用哪个 HTML 版本规范进行解析渲染。

返回总目录

每天 30 秒


欢迎注册黑客派社区,开启你的博客之旅。让学习和分享成为一种习惯!

9 评论
Ethan • 2018-12-20
回复 删除

赞👍👍!

wizardforcel • 2018-12-20
回复 删除

如果一个东西没有官方实现,那么它的实现一定是滞后的。

C++ 也是这样。习惯就好了。😂

Vanessa • 2018-12-20
回复 删除

相信越来越好

huzk • 2018-12-21
回复 删除

感觉没有

Vanessa • 2018-12-21
回复 删除

要么你不写前端,要么你没经历过 IE6、7、8、9

huzk • 2018-12-21
回复 删除

的确不写前端 哈哈哈

darknesschaser • 2018-12-28
回复 删除

其实现在主流浏览器的表现一致性已经不错啦,再加上UI库本身就做了兼容性处理,省事多了。

Vanessa • 2018-12-29
回复 删除

自家产品用 UI 库,后期很难掉头。 Sym 做了7年了,都是自己纯手工打造。如果用 UI 库的话,前端可能需要重做好几版了。

darknesschaser • 2019-01-02
回复 删除

😄 要做自己长期维护的产品和做快速交付的项目确实感觉不一样哈