面试问题整理-HTML

目录

 

1.标签的作用?

2.标准模式和兼容模式的区别?

3.对浏览器内核的理解?

4.常见的浏览器及其内核?

5.对HTML语义化的理解?

6.cookies,sessionStorage和localStorage 的区别?

7.行内(内联)元素有哪些?块级元素有哪些?空(void)元素有那些?

8.页面导入样式时,使用link和@import有什么区别?

9.HTML5新特性?新标签的浏览器兼容性问题?

10.HTML5的离线储存怎么使用,工作原理?


1.<!DOCTYPE>标签的作用?

<!DOCTYPE>声明位于HTML文档的第一行,告知浏览器用哪种HTML或XHTML规范解析文档。DOCTYPE不存在或者格式不正确会导致文档以兼容模式呈现。使用时只需要写<!DOCTYPE HTML>,这个属性会诶浏览器识别并使用,会以标准模式解析渲染页面。

2.标准模式和兼容模式的区别?

Standards(标准)模式(也就是严格呈现模式)用于呈现遵循最新标准的网页,而Quirks(兼容)模式(也就是松散呈现模式或者怪异模式)用于呈现为传统浏览器而设计的网页。

标准模式的排版和JS运作模式都是以该浏览器支持的最高标准运行。

兼容模式中,页面以宽松的向后兼容的方式显示,模拟老式浏览器的行为以防止站点无法工作。简单说就是尽可能的显示能显示的东西给用户看。

 具体区别:

(1)盒模型  在严格模式中 :width是内容宽度 ,元素真正的宽度 = width;  在兼容模式中 :width则是=width+padding+border

(2)兼容模式下可设置百分比的高度和行内元素的高宽    在Standards模式下,给span等行内元素设置wdith和height都不会生效,而在兼容模式下,则会生效。    在standards模式下,一个元素的高度是由其包含的内容来决定的,如果父元素没有设置高度,子元素设置一个百分比的高度是无效的。

(3)用margin:0 auto设置水平居中在IE下会失效    使用margin:0 auto在standards模式下可以使元素水平居中,但在兼容模式下却会失效(用text-align属性解决)    body{text-align:center};#content{text-align:left}  4.兼容模式下Table中的字体属性不能继承上层的设置,white-space:pre会失效,设置图片的padding会失效。

3.对浏览器内核的理解?

浏览器内核主要分为两部分:渲染引擎和JS引擎。

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

JS引擎则:解析和执行javascript来实现网页的动态效果。  最开始渲染引擎和JS引擎并没有区分的很明确,后来JS引擎越来越独立,内核就倾向于只指渲染引擎。

4.常见的浏览器及其内核?

Trident内核:IE,MaxThon,TT,The World,360,搜狗浏览器等。[又称MSHTML]

Gecko内核:Netscape6及以上版本,FF,MozillaSuite/SeaMonkey等

Presto内核:Opera7及以上。 [Opera内核原为:Presto,现为:Blink]

Webkit内核:Safari,Chrome等。  [ Chrome的:Blink(WebKit的分支)]

5.对HTML语义化的理解?

用正确的标签做正确的事情。

html语义化让页面的内容结构化,结构更清晰,便于对浏览器、搜索引擎解析;

即使在没有样式CSS情况下也以一种文档格式显示,并且是容易阅读的;

搜索引擎的爬虫也依赖于HTML标记来确定上下文和各个关键字的权重,利于SEO;

使阅读源代码的人对网站更容易将网站分块,便于阅读维护理解。

理解标签语义化

6.cookies,sessionStorage和localStorage 的区别?

cookies:网站为了标识用户身份而存储在用户本地终端(client)上的数据,通常经过加密。在设置的cookie过期时间之前一直有效,即使浏览器或者窗口关闭。每个域名存储量较小(约4k),所有域名的存储量有限制(约4k),有个数限制,会随请求发送的服务器,在浏览器和服务器之间来回传递。

sessionStorage:只在session内有效,在当前浏览器窗口关闭后自动删除,存储量更大(没有限制,但各浏览器设置不同),仅在本地保存。

localStorage:永久存储,浏览器关闭后数据不会丢失(除非主动删除),单个域名存储量较大(约5MB,各浏览器不同),总体数量没有限制,仅在本地保存。

7.行内(内联)元素有哪些?块级元素有哪些?空(void)元素有那些?

每个元素都有display属性,确定该元素的类型,每个元素都有默认的display值,如div的display默认值为“block”,则为“块级”元素;span默认display属性值为“inline”,是“行内”元素。

行内元素:会在水平方向排列,不能包含块级元素,设置width、height无效(可以设置line-height),margin、padding上下无效。 块级元素:各占据一行,垂直方向排列,可以包含行内元素。块级元素的 width 默认为 100%,而内联元素则是根据其自身的内容或子元素来决定其宽度。

(1)行内元素有:a、abbr、acronym、b、big、br、cite、code、dfn、em、font、i、img、input、kbd、label、q、samp、select、small、span、s、del、strike、strong、sub、sup、textarea、tt、u、var等

(2)块级元素:address、blockquote、center、dir、div、p、table、dl、ul、ol、li、fieldset、form、form、*hn、hr、menu、noframes、frames、noscript、 pre等

(3)常见的空元素:    <br><hr> <img> <input> <link><meta>

8.页面导入样式时,使用link和@import有什么区别?

(1)link属于XHTML标签,除了加载CSS外,还能用于定义RSS,定义rel连接属性等作用;而@import是CSS提供的,只能用于加载CSS;

(2)页面被加载的时,link会同时被加载,而@import引用的CSS会等到页面被加载完再加载;

(3)import是CSS2.1 提出的,只在IE5以上才能被识别,而link是XHTML标签,无兼容问题;

9.HTML5新特性?新标签的浏览器兼容性问题?

HTML5的十大新特性

处理HTML5新标签的浏览器兼容问题:

当在页面中使用HTML5新标签时,可能会得到三种不同的结果:

结果1:新标签被当作错误处理并被忽略,在DOM构建时会当作这个标签不存在。

结果2:新标签被当作错误处理,并在DOM构建时,这个新标签会被构造成行内元素。

结果3:新标签被识别为HTML5标签,然后用DOM节点对其进行替换。

不能识别HTML5新标签而不能使用,解决办法有两种:

方法1:实现标签被识别  通过document.createElement(tagName)方法即可让浏览器识别新标签,浏览器支持新标签后,还可以为新标签添加CSS样式。

方法2:JavaScript解决方案

使用html5shim:在<head>中调用以下代码:

<!--[if lt IE 9]>
	<script> src="http://html5shim.googlecode.com/svn/trunk/html5.js"</script>
<![endif]-->

使用kill IE6:在</body>之前调用以下代码:

<!--if lte IE 6]>
	<script src="http://letskillie6.googlecode.com/svn/trunk/letskillie6.zh_CN.pack.js"></script> 
<![endif]-->

10.HTML5的离线储存怎么使用,工作原理?

在用户没有与因特网连接时,可以正常访问站点或应用,在用户与因特网连接时,更新用户机器上的缓存文件。  

原理:HTML5的离线存储是基于一个新建的.appcache文件的缓存机制(不是存储技术),通过这个文件上的解析清单离线存储资源,这些资源就会像cookie一样被存储了下来。之后当网络在处于离线状态下时,浏览器会通过被离线存储的数据进行页面展示。

如何使用:

(1)页面头部像下面一样加入一个manifest的属性;

(2)在cache.manifest文件的编写离线存储的资源;

  CACHEMANIFEST

   #v0.11

   CACHE:

   js/app.js

   css/style.css

   NETWORK:

  resourse/logo.png

   FALLBACK:

   //offline.html  

(3)在离线状态时,操作window.applicationCache进行需求实现。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章