Bootstrap

史上最全的web前端面试题汇总及答案

XHTML 元素必须被关闭。

标签名必须用小写字母。

XHTML 文档必须拥有根元素。

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

行内元素和块级元素的区别是什么?行内块元素的兼容性使用?(IE8 以下)

**块级元素:**div p h1 h2 h3 h4 form ul ol dl dt dd

行内元素: a b br i span input select image strong(强调的语气)

常见空元素:

<br>/<hr>/<img>/<input>/<link>/<meta>

不常见空元素:

<area>/<base>/<col>/<command>/<embed>/<keygen>/<param>/<source>/<track>/<wbr>

**行内元素:**会在水平方向排列,不能包含块级元素,设置width无效,height无效(可以设置line-height),margin上下无效,padding上下无效。

**块级元素:**各占据一行,垂直方向排列。从新行开始结束接着一个断行。

兼容性:

display:inline-block;*display:inline;*zoom:1;

14、CSS引入的方式有哪些? link和@import的区别是?

CSS引入的方式包括内联 内嵌 外链 导入

link和@import的区别是 :

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

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

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

④后者优先级更高

15、你做的页面在哪些流览器测试过?这些浏览器的内核分别是什么?介绍一下你对浏览器内核的理解

Ie(Ie内核) 火狐(Gecko) 谷歌(webkit) opera(blink)

对内核的理解:

主要分成两部分:渲染引擎(layout engineer或Rendering Engine)和JS引擎。

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

②JS引擎:解析和执行javascript来实现网页的动态效果。

最开始渲染引擎和JS引擎并没有区分的很明确,后来JS引擎越来越独立,内核就倾向于只指渲染引擎。

16、解释css sprites,如何使用。

Css 精灵 把一堆小的图片整合到一张大的图片上,减轻服务器对图片的请求数量。

适用于以下情况:

①静态图片,不随用户信息的变化而变化

②小图片,图片容量比较小

③加载量比较大

17、清除浮动的几种方式,各自的优缺点

(1)父级div定义height。

(2)结尾处加空div标签clear:both。

(3)父级div定义伪类:after和zoom。

(4)父级div定义overflow:hidden。

(5)父级div定义overflow:auto。

(6)父级div也浮动,需要定义宽度。

(7)父级div定义display:table。

(8)结尾处加br标签clear:both。

比较好的是第3种方式,好多网站都这么用。

18、Doctype作用?标准模式与兼容模式各有什么区别?

<!DOCTYPE>告知浏览器的解析器用什么文档标准解析这个文档。DOCTYPE不存在或格式不正确会导致文档以兼容模式呈现。

②标准模式的排版和JS运作模式都是以该浏览器支持的最高标准运行。在兼容模式中,页面以宽松的向后兼容的方式显示,模拟老式浏览器的行为以防止站点无法工作。

注意点:

HTML5 只需要写<!DOCTYPEHTML>不需要对DTD进行引用,因为HTML5不基于 SGML,因此不需要对DTD进行引用,但是需要doctype来规范浏览器的行为(让浏览器按照它们应该的方式来运行)。

而HTML4.01基于SGML,所以需要对DTD进行引用,才能告知浏览器文档所使用的文档类型。

19、iframe有哪些缺点?

①iframe会阻塞主页面的Onload事件,搜索引擎的检索程序无法解读这种页面,不利于SEO;

②iframe和主页面共享连接池,而浏览器对相同域的连接有限制,所以会影响页面的并行加载。

使用iframe之前需要考虑这两个缺点。如果需要使用iframe,最好是通过javascript动态给iframe添加src属性值,这样可以绕开以上两个问题。

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

①通过WebSocket、SharedWorker来实现;

②也可以调用localstorge、cookies等本地存储方式。

localstorge另一个浏览上下文(另一个标签页)里被添加、修改或删除时,它都会触发一个事件,我们通过监听事件,控制它的值来进行页面信息通信。

注意quirks:Safari 在无痕模式下设置localstorge值时会抛出 QuotaExceededError 的异常。

21、如何在页面上实现一个圆形的可点击区域?

①map+area或者svg

②border-radius

③纯js实现 需要求一个点在不在圆上简单算法、获取鼠标坐标等等

22、CSS3有哪些新特性?

① CSS3实现圆角(border-radius:8px),阴影(box-shadow:10px);

② 对文字加特效(text-shadow、),线性渐变(gradient),旋转(transform);

③ transform:rotate(9deg) scale(0.85,0.90) translate(0px,-30px) skew(-9deg,0deg);

//旋转,缩放,定位,倾斜

④ 增加了更多的CSS选择器 多背景 rgba

<

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;