前端面试之HTML部分

431 阅读5分钟

一、XHTML 与 HTML 有什么区别

  • XHTML元素必须被正确嵌套
  • XHTML元素必须被正确关闭,单标签也得关闭. 例如<br/>
  • 标签名必须使用小写
  • XHTML文档必须具备根元素

二、Doctype的作用?标准模式与混杂模式的区别?两种模式的触发条件是什么?

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

  • Doctype是文档类型声明,具有三种DTD类型,分别是:严格版本、过渡版本、基于框架的HTML文档。
  • 标准模式是指浏览器根据W3C的标准去解析页面; 混杂模式是一种向后兼容的解析方法,可以实现IE5.5版本以下浏览器的渲染模式。
  • 如果声明了DTD,便是标准模式,没有声明就是混杂模式。

三、介绍一下你对浏览器内核的理解?常见的浏览器内核有哪些?

浏览器内核由两部分组成,第一部分是渲染引擎, 第二部分是Javascript解析器。 现在主流的内核有4种:

  • Trident内核:IE浏览器,360浏览器
  • Gecko内核:Firefox浏览器
  • Webkit内核:Safari浏览器
  • Blink内核: Chorme浏览器, Opera浏览器

四、src与href的区别

  • src : 指向外部资源的位置, 指向的内容将会被嵌入到文档中当前标签所在位置; 在请求src资源时会将其指向的资源下载并应用到文档中, 如js脚本,img图片和iframe等元素.当浏览器解析到该元素时, 会暂停其他资源的下载和处理,直到将该资源加载,编译,执行完毕,类似于将所有指向资源嵌入当前标签中.
  • href : href指向网络资源所在位置,建立和当前元素(锚点)和当前文档(链接)之间的链接, 如果我们在文档中添加<link hrf = "common.css" rel="stylesheet">,那么浏览器会识别该文档为CSS文件, 就会并行下载资源并且不会停止当前文档的处理.

五、简述一下你对HTML语义化的理解

  • 语义化让页面的内容结构化,结构更加清晰,便于对浏览器和搜索引擎解析;
  • 即使在没有样式的CSS的情况下也能以一种文档格式显示,并且容易阅读
  • 搜索引擎的爬虫也依赖于HTML标记来确定上下文和各个关键字的权重,有利于SEO
  • 使阅读源代码的人更容易将网站分块,便于理解和维护。

六、对Web标准以及W3C的理解和认识

  • 标签闭合,标签小写,不乱嵌套,提高搜索机器人搜索几率,使用外链CSS和js脚本,结构行为表现的分离;
  • 文件下载与页面速度更快,内容能被更多的用户所访问, 更少的代码和组件;
  • 容易维护,改版方便,不需要变动页面内容, 提供打印版本而不需要复制内容,提高网站易用性。

七、 iframe的作用

iframe是用来在网页中插入第三方网页,早起的页面使用iframe主要是用于像导航栏这种很多页面都相同的部分, 这样可以在切换页面的时候避免重复加载,现在很少使用了。

八、行内元素有哪些?块级元素有哪些? 空(void)元素有哪些?

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

  • 行内元素有:a b span img input select strong
  • 块级元素有:div ul ol li dl dt dd h1 h2 h3 h4 p
  • 常见的空元素:<br> <hr> <img> <input> <link> <meta>

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

  • link属于XHTML标签,除了加载CSS外,还能用于定义RSS, 定义rel连接属性等作用;而@import是CSS提供的,只能用于加载CSS;
  • 页面被加载时,link会同时被加载,而@import引用的CSS会等到页面被加载完再加载;
  • import是CSS2.1 提出的,只在IE5以上才能被识别,而link是XHTML标签,无兼容问题;

十、HTML5的离线储存

localStorage 长期存储数据,浏览器关闭后数据不丢失; sessionStorage 数据在浏览器关闭后自动删除。

十一、请描述一下 cookies,sessionStorage 和 localStorage 的区别

  • cookie在浏览器和服务器间来回传递,sessionStorage和localStorage不会;
  • sessionStorage和localStorage的存储空间更大;
  • sessionStorage和localStorage有更多丰富易用的接口;
  • sessionStorage和localStorage有各自独立的存储空间;

十二、如何实现浏览器内多个标签页之间的通信

调用localstorge、cookies等本地存储方式

十三、HTML5 为什么只需要写

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