Axi*_*xus 3 html css standards doctype
据我所知,这<!DOCTYPE html>使得浏览器以标准模式呈现页面,但这并不能阻止您的页面在HTML 6出现时被破坏.
为什么他们不这样做,而不是让标准如此通用,以便在页面顶部明确指定您要定位的标准版本?而不是<!DOCTYPE html>做一些类似的<!DOCTYPE html=5>事情,当未来的浏览器出现HTML 6时,他们看到<!DOCTYPE html=5>他们知道该页面不知道HTML 6标准,所以为了保证页面不会破坏,浏览器会崩溃回到HTML 5标准.
这就像是一种向后兼容性方法,因此您今天编写的页面可以保证工作数十年.当然,您不应该等待数十年来更新您的页面,但至少您知道它不会打破标准的新版本出现的那一刻,同时您的页面支持旧版浏览器而不更改一行HTML .
为什么不是这样的事情?这种方法有什么问题?
据我所知,这
<!DOCTYPE html>使得浏览器以标准模式呈现页面,但这并不能阻止您的页面在HTML 6出现时被破坏.
是的,它确实.对HTML的添加旨在向后兼容,以便浏览器不会错误地开始渲染较旧的页面.
为什么他们不这样做,而不是让标准如此通用,以便在页面顶部明确指定您要定位的标准版本?
他们尝试了这一点,虽然出于不同的原因(HTML被设计为SGML应用程序,但浏览器没有这样实现).HTML 5之前的每个HTML和XHTML版本都是这样做的.浏览器没有区分版本(仅在怪癖/几乎标准/标准模式之间,所有这些都对CSS和DOM的处理产生了更大的影响).大多数作者没有编写代码来匹配他们使用的Doctype.
如果浏览器看到它无法识别的Doctype,应该做什么?它可以拒绝呈现页面(根本不会帮助用户),也可以尝试尽可能地呈现它(这就是它的功能).
如果浏览器看到不支持文档中的元素的Doctype,应该做什么?它可以忽略它们(这对任何人都没有帮助),抛出一个错误(这可以帮助开发人员,但只有当开发人员在市场上限制最多的浏览器中测试,否则它只会伤害用户),或者渲染它们尽力而为(这就是它的作用).
Doctype Switching和Quirks模式的重点不是支持为旧版本的HTML设计的网页,而是支持针对早期极其错误的浏览器设计的网页.
今天,浏览器设计得更好,测试更严格,他们的作者更好地编写新的HTML/CSS/DOM功能规范,为他们创建测试套件,并在他们之前有多个功能实现(在不同的浏览器中)获得公开的,没有前缀的实现,这些实现没有锁定在浏览器内部的配置选项后面.这大大减少了随着浏览器更新而可能破坏的事物的数量,因此没有重要的新错误需要保持向后兼容.
他们知道这个页面不知道HTML 6标准,所以为了保证页面不会中断,浏览器会回归到HTML 5标准.
请参阅上面的向后兼容性.