forked from front-thinking/FE-Summary
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
84 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,84 @@ | ||
# 前端面试题(HTML篇) | ||
|
||
1. **ie的某些兼容性问题** | ||
2. **HTML5的新特性** | ||
3. **canvas画图** | ||
4. **doctype的作用** | ||
5. **HTML5中引进`data-`有什么作用** | ||
6. **HTML中标准模式和怪异模式有什么不同** | ||
7. **写出你常用的HTML标签** | ||
8. **为什么要少用iframe** | ||
9. **HTML语义化的理解** | ||
10. **行内元素和块级元素的异同及img类似的特殊性** | ||
11. **盒模型,及在浏览器兼容方面的异同** | ||
|
||
================================================================================ | ||
|
||
|
||
1. **ie的某些兼容性问题** | ||
|
||
2. **HTML5的新特性** | ||
答案:画板元素、视频元素、地理定位、离线网络程序。 | ||
语义:能够让你更恰当地描述你的内容是什么。 | ||
连通性:能够让你和服务器之间通过创新的新技术方法进行通信。 | ||
离线 & 存储:能够让网页在客户端本地存储数据以及更高效地离线运行。 | ||
多媒体:使 video 和 audio 成为了在所有 Web 中的一等公民。 | ||
2D/3D 绘图 & 效果:提供了一个更加分化范围的呈现选择。 | ||
性能 & 集成:提供了非常显著的性能优化和更有效的计算机硬件使用。 | ||
设备访问 Device Access:能够处理各种输入和输出设备。 | ||
样式设计: 让作者们来创作更加复杂的主题吧! | ||
|
||
3. **canvas画图** | ||
|
||
4. **doctype的作用** | ||
答案:doctype告诉浏览器它使用了什么文档类型。它指出阅读程序应该用什么 规则集来解释文档中的标记。XHTML中有三种,包括过度型、严格型、框架型。HTML4严格。随着XML的流行,HTML推出了XHTML标准,其中严格模式严格遵守了XML的规范,例如属性必须有值、标签必须闭合等,同时也抛弃了一些不推荐的标签。而XHTML过度版本,则稍微比严格模式松散些,一些不推荐的标签依然可用外。当页面有框架时,则应该使用框架型。再就是HTML5的版本。使用HTML5的Doctype会默认触发标准模式。 | ||
|
||
5. **HTML5中引进`data-`有什么作用** | ||
答案:data-是HTML5新增的一个自定义属性。用以方便开发者在HTML中自定义一些属性来存储和操作数据,同时又不违背HTML的规范,不会带来一些副作用。data-自定义属性非常简单,如下例: | ||
|
||
``` html | ||
<article id="electriccars" data-columns="3" data-index-number="12314" data-parent="cars">...</article>。 | ||
``` | ||
|
||
通过JS去获取自定义属性非常简单,可以通过 getAttribute()传递全部名称来获取,也可以使用 dataset 属性集来获取。如: | ||
|
||
``` javascript | ||
var article = document.querySelector('#electriccars'); | ||
article.dataset.columns; // "3" | ||
article.dataset.indexNumber ;// "12314" | ||
article.dataset.parent ;// | ||
``` | ||
|
||
6. **HTML中标准模式和怪异模式有什么不同** | ||
答案:由于历史的原因,各个浏览器在对页面的渲染上存在差异,甚至同一浏览器在不同版本中,对页面的渲染也不同。在W3C标准出台以前,浏览器在对页面的渲染上没有统一规范,产生了差异(Quirks mode或者称为Compatibility Mode);由于W3C标准的推出,浏览器渲染页面有了统一的标准(CSScompat或称为Strict mode也有叫做Standars mode),这就是二者最简单的区别。 | ||
W3C标准推出以后,浏览器都开始采纳新标准,但存在一个问题就是如何保证旧的网页还能继续浏览,在标准出来以前,很多页面都是根据旧的渲染方法编写的,如果用的标准来渲染,将导致页面显示异常。为保持浏览器渲染的兼容性,使以前的页面能够正常浏览,浏览器都保留了旧的渲染方法(如:微软的IE)。这样浏览器渲染上就产生了Quircks mode和Standars mode,两种渲染方法共存在一个浏览器上。火狐一直工作在标准模式下,但IE(6,7,8)标准模式与怪异模式差别很大,主要体现在对盒子模型的解释上,这个很重要,下面就重点说这个。 那么浏览器究竟该采用哪种模式渲染呢?这就引出的DTD,既是网页的头部声明,浏览器会通过识别DTD而采用相对应的渲染模式。 | ||
1.浏览器要使老旧的网页正常工作,但这部分网页是没有doctype声明的,所以浏览器对没有doctype声明的网页采用quirks mode解析。 | ||
2.对于拥有doctype声明的网页,什么浏览器采用何种模式解析,这里有一张详细列表可参考:[点击这里](http://hsivonen.iki.fi/doctype)。 | ||
3.对于拥有doctype声明的网页,这里有几条简单的规则可用于判断:对于那些浏览器不能识别的doctype声明,浏览器采用strict mode解析。 | ||
4.在doctype声明中,没有使用DTD声明或者使用HTML4以下(不包括HTML4)的DTD声明时,基本所有的浏览器都是使用quirks mode呈现,其他的则使用strict mode解析。 | ||
5.可以这么说,在现有有doctype声明的网页,绝大多数是采用strict mode进行解析的。 | ||
6.在ie6中,如果在doctype声明前有一个xml声明(比如:<?xml version=”1.0″ encoding=”iso-8859-1″?>),则采用quirks mode解析。这条规则在ie7中已经移除了。 | ||
|
||
7. **写出你常用的HTML标签** | ||
答案:根据自己的使用和掌握来写吧。参考http://blog.csdn.net/ithomer/article/details/5277162。 | ||
|
||
8. **为什么要少用iframe** | ||
答案:[为什么应该减少使用iframe](http://www.williamlong.info/archives/3136.html) | ||
iframe的创建比其它包括scripts和css的 DOM 元素的创建慢了 1-2 个数量级。 | ||
Iframes阻塞页面加载:window 的 onload 事件需要在所有 iframe 加载完毕后(包含里面的元素)才会触发。在 Safari 和 Chrome 里,通过 JavaScript 动态设置 iframe 的 SRC 可以避免这种阻塞情况。 | ||
唯一的连接池:有人可能希望 iframe 会有自己独立的连接池,但不是这样的。绝大部分浏览器,主页面和其中的 iframe 是共享这些连接的。这意味着 iframe 在加载资源时可能用光了所有的可用连接,从而阻塞了主页面资源的加载。如果 iframe 中的内容比主页面的内容更重要,这当然是很好的。但通常情况下,iframe 里的内容是没有主页面的内容重要的。这时 iframe 中用光了可用的连接就是不值得的了。一种解决办法是,在主页面上重要的元素加载完毕后,再动态设置 iframe 的 SRC。 | ||
|
||
9. **HTML语义化的理解** | ||
答案:用正确的标签表达正确的内容,可以增强网页的易用性(如障碍人士访问等)和搜索引擎的爬取和检索。HTML5新增的语义化标签如header\section\article\footer等。 | ||
|
||
10. **行内元素和块级元素的异同及img类似的特殊性** | ||
答案:行内元素和块级元素异同如下: | ||
1.行内元素与块级元素直观上的区别,行内元素会在一条直线上排列,都是同一行的,水平方向排列②块级元素可以包含行内元素和块级元素。行内元素不能包含块级元素。 | ||
2.行内元素与块级元素属性的不同,主要是盒模型属性上(行内元素设置width无效,height无效(可以设置line-height),margin上下无效,padding上下无效)。 | ||
3.行内元素转换为块级元素,通过设置display:block | ||
|
||
注:img\input\textarea等是特殊的行内元素,确切的说是inline-block元素。 | ||
|
||
11. **盒模型,及在浏览器兼容方面的异同** | ||
答案:浏览器的盒子模型指的是它的盒子宽度需要包括内容区宽度、内外边距和边框大小,高度类似。一般设置宽度默认是对应内容区宽度。 | ||
兼容性方面:在IE7以前的版本中设置宽度是包括:内边距+边框+内容区的。IE7之后跟其它浏览器一样,都是只对应内容区的宽度。可以通过修改box-sizing:border-box来修改。让设置宽度等于内容区和边框和内边距之和。 |