一、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 为什么只需要写 <!DOCTYPE HTML>
- HTML5 不基于 SGML,因此不需要对DTD进行引用,但是需要doctype来规范浏览器的行为(让浏览器按照它们应该的方式来运行);
- HTML4.01基于SGML,所以需要对DTD进行引用,才能告知浏览器文档所使用的文档类型。