前端
1.Doctype作用?严格模式与混杂模式如何区分?它们有何意义?
- doctype是文件类型定义,放在html页面的头部,他不属于一个标签
- 严格模式是指标准模式,是w3c制定的标准
- 混杂模式是由于部位同浏览器产生的,会用浏览器自己的方式去解析文档
- 在html5中就不存在在文档声明了
- 标准模式中的height,width都是只是包括元素的内容部分,不包括padding 和 border,本的Quirks模式下,IE的宽度和高度还包含了padding和border。
- 标准模式下的行内元素不可以设置宽高,但是在混杂模式下可以
- 在标准模式下的margin:0 auto 设置居中在ie的混杂模式下不会生效
- 混杂模式下设置图片的padding不会生效
2.HTML5中为啥只要申明Doctype就可以了?
html5申明是一种回归,回归到简单声明,他不是基于SGML的。
3.行内元素有哪些?块级元素有哪些? 空(void)元素有那些?
html中css规定每个元素都有display属性,block为块级元素,inline为行内元素
行内元素有:a span b strong input select img 等
块级元素有: div hn p main section head footer aside 等
空元素有:br hr input img meta link
4.页面导入样式时,使用link和@import有什么区别?
link是很早就提出来应用css外部文件的方式,属于Xhtml,而,@import是css2.1提出的,对低版本的浏览器不支持,用@import引入的css文件只会在最后才会下载,可能出现页面闪烁的问题,JS不能控制。而使用link的方式加载的文件则会被同时加载。
5.介绍一下你对浏览器内核的理解?
浏览器内核又叫做排版引擎,或是渲染引擎,他将网页显然成为最终我们看到的页面。我们常说的IE,Chrome内核区分是不合理的,一个完整的浏览器不只是包含排版引擎,还有其他的页面框架和其他作支撑,并且排版引擎不可能做完浏览器的所有事情
- Trident
IE 使用的内核,基于IE内核的浏览器很多,特别是IE6版本的特别多,但是他不遵守w3c的标准,有时要单独为他编写代码。- Gecko(跨平台)
netspace6启用的内核,现在由Mozilla基金会维护,开源的内核,Mozilla FireFox内核就是他。- KHTML(Linux)
很少见,速度快,但是容错低。- webkit(跨平台)
苹果开源的内核,来源于KHTML,对w3的支持很好,并且性能很好(chorme也是基于此),手机上默认的浏览器的内核就是webkit- Presto(跨平台)
Opera使用的内核,准确的说是Opera7.0以后的版本,但是他的渲染能力较差- javascript 引擎
我们常说的哪个浏览器更快,其实指的是javasript 的渲染速度,一般来说,opera的跑分一直很高。
chakra(查克拉),ie9以后使用的JavaScript引擎
v8,chrome
Nitro,safar4以后的版本
Liner A/B…Opera使用的引擎
SpiderMonkey,TraceMonkey,JaegerMonkey fireFox使用的引擎
6.html5有哪些新特性、移除了那些元素?如何处理HTML5新标签的浏览器兼容问题?如何区分 HTML 和 HTML5?
现在的html5不在是SGML的子集了。新的特新主要是体现在关于图像,位置,存储,多任务,canvas。
新的技术:webworker,websocket,Geolocation
语义化更好:article,footer,header,nav section等
localStorage,sessionStorage数据存储
移除的元素:basefont big font s stirck tt u
7.简述一下你对HTML语义化的理解?
为了避免没有意义的div+css的东西,语义化指的其实就是自己写的html标签有一定的具体意义。具有语义化的东西对文档的结构有好的展示。
8.HTML5的离线储存怎么使用,工作原理能不能解释一下?
localstorage,sessionStorage,mainfest