01HTML和CSS知识点总结(一)

时间:2020-03-21 21:02:44   收藏:0   阅读:89

Gecko:这是 Firefox 和 Flock 所采用的内核,这个内核的优点就是功能强大、丰富,可以支持很多复杂网页效果和浏览器扩展接口,但是代价是也显而易见就是要消耗很多的资源,比如内存。

Presto:Opera 曾经采用的就是 Presto 内核,Presto 内核被称为公认的浏览网页速度最快的内核,这得益于它在开发时的天生优势,在处理 JS 脚本等脚本语言时,会比其他的内核快3倍左右,缺点就是为了达到很快的速度而丢掉了一部分网页兼容性。

Webkit:Webkit 是 Safari 采用的内核,它的优点就是网页浏览速度较快,虽然不及 Presto 但是也胜于 Gecko 和 Trident,缺点是对于网页代码的容错性不高,也就是说对网页代码的兼容性较低,会使一些编写不标准的网页无法正确显示。WebKit 前身是 KDE 小组的 KHTML 引擎,可以说 WebKit 是 KHTML 的一个开源的分支。

Blink:谷歌在 Chromium Blog 上发表博客,称将与苹果的开源浏览器核心 Webkit 分道扬镳,在 Chromium 项目中研发 Blink 渲染引擎(即浏览器核心),内置于 Chrome 浏览器之中。其实 Blink 引擎就是 Webkit 的一个分支,就像 webkit 是KHTML 的分支一样。Blink 引擎现在是谷歌公司与 Opera Software 共同研发,上面提到过的,Opera 弃用了自己的 Presto 内核,加入 Google 阵营,跟随谷歌一起研发 Blink。 )

2、Doctype的作用是什么?

(在标准模式下,浏览器的解析规则都是按照最新的标准进行解析的。而在兼容模式下,浏览器会以向后兼容的方式来模拟老式浏览器的行为,以保证一些老的网站的正确访问。在 html5 之后不再需要指定 DTD 文档,因为 html5 以前的 html 文档都是基于 SGML 的,所以需要通过指定 DTD 来定义文档中允许的属性以及一些规则。而 html5 不再基于 SGML 了,所以不再需要使用 DTD。)

3、Quirks【扩科斯】模式是什么?它和Standards【斯坦尔德】模式有什么区别?

总体有布局、样式解析和脚本执行三个方面的区别

4、div + css的布局较table布局有什么优点?

5、img 的 alt 与 title 有何异同,strong 与 em 有何异同?

6、渐进增强和优雅降级之间的区别是什么?

7、为什么利用多个域名来存储网站资源会更有效?

8、网页标准和标准制定机构的重要性是什么?

网页标准和标准制定机构都是为了能让web发展的更“健康”,开发者遵循统一的标准,降低开发难度、开发成本,SEO也会更好做,也不会因为滥用代码导致各种bug、安全问题,最终提高网站易用性

9、cookie,sessionStorage和localStorage的区别是什么?

sessionStorage和localStorage属于Web storage

10、src 和 href 的区别是什么?

src用于替换当前元素,href用于在当前文档和引用资源之间确立联系

<script src="js.js"></script>

当浏览器解析到该元素时,会暂停其他资源的下载和处理,直到该资源加载、编译、执行完毕,图片和框架等元素也如此,类似将所指向资源嵌入当前标签内,这也是为什么将js脚本放在底部而不是头部的原因

<link href="css.css" rel="stylesheet"/>

那么浏览器会识别该文档为css文件,就回并行下载资源并且不会停止对当前文档的处理。这也是问什么建议使用link方式来加载css,而不是使用@importent方式

11、知道的网页制作会用到的图片格式有哪些?

png-8,png-24,jpeg,gif,svg

12、在前端构件中应该考虑微格式吗?

微格式是一种让机器可读的语义化XHTML词汇的集合,是结构化数据的开放标准,是为特殊应用而制定的特殊格式

13、从刷新网页开始,一般情况下一次js请求有哪些地方会有缓存处理?

DNS缓存、cdn缓存、浏览器缓存、服务器缓存

14、优化图片加载的方法有哪些?

15、标准模式与兼容模式各有什么区别?

标准模式的渲染方式和js引擎的解析方式都是以浏览器支持的最高标准运行。在兼容模式中,页面可以宽松的向后兼容的方式显示,模拟老式浏览器的行为以防止站点无法工作

16、HTML5为什么只需要写,而不需要引入DTD?

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

17、SGML 、 HTML 、XML 和 XHTML 的区别?

18、DTD 是什么?

DTD( Document Type Definition 文档类型定义)是一组机器可读的规则,它们定义 XML 或 HTML 的特定版本中所有允许元素及它们的属性和层次关系的定义。在解析网页时,浏览器将使用这些规则检查页面的有效性并且采取相应的措施。DTD 是对 HTML 文档的声明,还会影响浏览器的渲染模式(工作模式)

19、行内元素定义

HTML4 中,元素被分成两大类: inline (内联元素)与 block(块级元素)。一个行内元素只占据它对应标签的边框所包含的空间。

常见的行内元素有 a ,b ,span ,img ,strong ,sub ,sup ,button ,input ,label ,select ,textarea

20、块级元素定义

块级元素占据其父元素(容器)的整个宽度,因此创建了一个“块”。

常见的块级元素有 div ,ul ,ol ,li ,dl ,dt ,dd ,h1 ,h2 ,h3 ,h4 ,h5 ,h6 ,p

21、行内元素与块级元素的区别?

HTML4中,元素被分成两大类:inline (内联元素)与 block (块级元素)

22、HTML5 元素的分类

HTML4中,元素被分成两大类: inline(内联元素)与 block(块级元素)。但在实际的开发过程中,因为页面表现的需要,前端工程师经常把 inline 元素的 display 值设定为 block (比如 a 标签),也经常把 block 元素的 display 值设定为inline 之后更是出现了 inline-block 这一对外呈现 inline 对内呈现 block 的属性。因此,简单地把 HTML 元素划分为inline 与 block 已经不再符合实际需求。

HTML5中,元素主要分为7类:Metadata ,Flow ,Sectioning ,Heading ,Phrasing ,Embedded ,Interactive

23、空元素定义

标签内没有内容的 HTML 标签被称为空元素。空元素是在开始标签中关闭的。

常见的空元素有:br ,hr ,img ,input ,link ,meta

26、对浏览器的理解

27、对浏览器内核的理解

主要分成两部分:渲染引擎和 JS 引擎。

28、浏览器的渲染原理

首先解析收到的文档,根据文档定义构建一棵 DOM 树,DOM 树是由 DOM 元素及属性节点组成的。然后对 CSS 进行解析,生成 CSSOM 规则树。根据 DOM 树和 CSSOM 规则树构建渲染树。渲染树的节点被称为渲染对象,渲染对象是一个包含有颜色和大小等属性的矩形,渲染对象和 DOM 元素相对应,但这种对应关系不是一对一的,不可见的 DOM 元素不会被插入渲染树。还有一些 DOM 元素对应几个可见对象,它们一般是一些具有复杂结构的元素,无法用一个矩形来描述。当渲染对象被创建并添加到树中,它们并没有位置和大小,所以当浏览器生成渲染树以后,就会根据渲染树来进行布局(也可以叫做回流)。这一阶段浏览器要做的事情是要弄清楚各个节点在页面中的确切位置和大小。通常这一行为也被称为“自动重排”。布局阶段结束后是绘制阶段,遍历渲染树并调用渲染对象的 paint 方法将它们的内容显示在屏幕上,绘制使用 UI 基础组件。值得注意的是,这个过程是逐步完成的,为了更好的用户体验,渲染引擎将会尽可能早的将内容呈现到屏幕上,并不会等到所有的html 都解析完成之后再去构建和布局 render 树。它是解析完一部分内容就显示一部分内容,同时,可能还在通过网络下载其余内容。

29、渲染过程中遇到 JS 文件怎么处理?(浏览器解析过程)

JavaScript 的加载、解析与执行会阻塞文档的解析,也就是说,在构建 DOM 时,HTML 解析器若遇到了 JavaScript,那么它会暂停文档的解析,将控制权移交给 JavaScript 引擎,等 JavaScript 引擎运行完毕,浏览器再从中断的地方恢复继续解析文档。也就是说,如果你想首屏渲染的越快,就越不应该在首屏就加载 JS 文件,这也是都建议将 script 标签放在 body 标签底部的原因。当然在当下,并不是说 script 标签必须放在底部,因为你可以给 script 标签添加 defer 或者 async 属性。

30、 async 和 defer 的作用是什么?有什么区别?(浏览器解析过程)


参考:https://github.com/CavsZhouyou/Front-End-Interview-Notebook/blob/master/Html/Html.md


评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!