盒子
文章目录
  1. Doctype作用?标准模式与兼容模式各有什么区别?
  2. 渐进增强、优雅降级
  3. HTML5 为什么只需要写<!DOCTYPE HTML>?
  4. 行内元素、块级元素
  5. 页面导入样式时,使用 link 和 @import 有什么区别?
  6. 对浏览器内核的理解
  7. iframe 有那些缺点?

HTML 必知必会

Doctype作用?标准模式与兼容模式各有什么区别?

  • <!DOCTYPE> 声明位于 HTML 文档中的第一行,处于 <html> 标签之前。告知浏览器的解析器用什么文档标准解析这个文档。<!DOCTYPE>不存在或格式不正确会导致文档以兼容模式呈现。

  • 标准模式的排版和 JS 运作模式都是以该浏览器支持的最高标准运行。在兼容模式中,页面以宽松的向后兼容的方式显示,模拟老式浏览器的行为以防止站点无法工作。

渐进增强、优雅降级

  • 渐进增强:一开始就针对低版本浏览器进行构建页面,完成基本的功能,然后再针对高级浏览器进行效果、交互、追加功能达到更好的体验。
  • 优雅降级:一开始就构建站点的完整功能,然后针对浏览器测试和修复。

HTML5 为什么只需要写<!DOCTYPE HTML>

  • HTML5 不基于 SGML(标准通用标记语言),因此不需要对 DTD 进行引用,但是需要 doctype 来规范浏览器的行为(让浏览器按照它们应该的方式来运行);
  • HTML4.01 基于 SGML,所以需要对 DTD 进行引用,才能告知浏览器文档所使用的文档类型。

行内元素、块级元素

  • 行内元素会在一条直线上排列(默认宽度只与内容有关),都是同一行的,水平方向排列;
  • 块级元素各占据一行(默认宽度是它本身父容器的 100% 和父元素的宽度一致,与内容无关),垂直方向排列。块级元素从新行开始,结束接着一个断行;
  • 块级元素可以包含行内元素和块级元素。行内元素不能包含块级元素,只能包含文本或者其它行内元素;
  • 行内元素与块级元素属性的不同,主要是盒模型属性上:行内元素设置 width、height无效(可以设置 line-height),margin、padding上下无效。
  • link属于 XHTML 标签,除了加载 CSS 外,还能用于定义 RSS, 定义 rel 连接属性等作用;而 @import 是 CSS 提供的,只能用于加载CSS;
  • 页面被加载的时,link 会同时被加载,而 @import 引用的 CSS 会等到页面被加载完再加载;
  • @import是 CSS2.1 提出的,只在 IE5 以上才能被识别,而 link 是 XHTML 标签,无兼容问题;
  • link 支持使用 JS 控制 DOM 去改变样式,而 @import不支持。

对浏览器内核的理解

  • 渲染引擎(layout engineer或Rendering Engine)和 JS 引擎;
  • 渲染引擎:负责取得网页的内容(HTML、XML、图像等等)、整理讯息(例如加入CSS等),以及计算网页的显示方式,然后会输出至显示器或打印机。浏览器的内核的不同对于网页的语法解释会有不同,所以渲染的效果也不相同。所有网页浏览器、电子邮件客户端以及其它需要编辑、显示网络内容的应用程序都需要内核;
  • JS引擎则:解析和执行 Javascript 来实现网页的动态效果。

iframe 有那些缺点?

  • iframe 会阻塞主页面的 onLoad 事件;
  • 搜索引擎的检索程序无法解读这种页面,不利于 SEO;
  • iframe 和主页面共享连接池,而浏览器对相同域的连接有限制,所以会影响页面的并行加载;
  • 如果需要使用 iframe,最好是通过 Javascript 动态给 iframe 添加 src 属性值,这样可以绕开以上问题。