1. 文档声明Doctype<!Doctype html> 有何作用?严格模式与混杂模式如何区分?他们有何意义?

    文档声明的作用:文档声明是为了告诉浏览器,当前的 HTML 文档是使用什么版本的 HTML 来写的,这样浏览器才会按照声明的版本来正确的解析

    **<!Doctype html>**的作用:<!Doctype html>的作用就是让浏览器进入标准模式,使用最新的 HTML5 标准来解析和渲染页面;如果不写,浏览器就会进入混杂模式,我们需要避免此类情况发生

    严格模式与混杂模式的区分

    1. 严格模式:又被称为标准模式,指浏览器按照 W3C 标准解析代码
    2. 混杂模式:又被称为怪异模式、兼容模式,是指浏览器用自己的方式解析代码,混杂模式通常模拟老浏览器的行为,防止老的站点网页无法工作

    区分:网页中的 DTD,直接影响到使用的是严格模式还是混杂模式,可以说 DTD 的使用与这两种方式的区别息息相关

    • 如果文档包含严格的 DOCTYPE,那么他一般以严格模式呈现(严格 DTD)
    • 包含过渡 DTD 和 URI 的 DOCTYPE,也以严格模式呈现,但有过渡 DTD 而没有 URI 会导致页面以混杂模式呈现)(有 URI 的过渡 DTD — 严格模式;没有 URI 的过渡 DTD — 混杂模式)
    • DOCTYPE 不存在或形式不正确会导致文档以混杂模式呈现(DTD 不存在或格式不正确)
    • HTML5 没有 DTD,因此也就没有混杂模式与严格模式的区别,HTML5 有相对宽松的规则,实现时已经尽可能向后兼容
    1. 浏览器产生乱码的原因是什么?如何解决?
    • 网页源代码是 gbk 编码,而内容中的中文是 utf8 编码
    • html 网页编码是 gbk,而数据库中调出后呈现的是 utf8 编码
    • 如果浏览器浏览时候出现网页乱码,在浏览器中找到转换编码的菜单进行转换
    1. 渐进增强和优雅降级之间的区别
      1. 渐进增强:主要是针对低版本浏览器进行页面重构,保证基本的功能情况下,再针对高级浏览器进行效果、交互方面的改进和追加功能,已达到更好的用户体验
      2. 优雅降级:一开始就构建完整功能,然后再针对低版本浏览器进行兼容