前端面试题目文档格式.docx

上传人:b****6 文档编号:16818393 上传时间:2022-11-26 格式:DOCX 页数:20 大小:31.77KB
下载 相关 举报
前端面试题目文档格式.docx_第1页
第1页 / 共20页
前端面试题目文档格式.docx_第2页
第2页 / 共20页
前端面试题目文档格式.docx_第3页
第3页 / 共20页
前端面试题目文档格式.docx_第4页
第4页 / 共20页
前端面试题目文档格式.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

前端面试题目文档格式.docx

《前端面试题目文档格式.docx》由会员分享,可在线阅读,更多相关《前端面试题目文档格式.docx(20页珍藏版)》请在冰豆网上搜索。

前端面试题目文档格式.docx

IE的content部分包含了border和pading;

(2)盒模型:

内容(content)、填充(padding)、边界(margin)、边框(border).

4.link和@import的区别是?

(1)、link属于XHTML标签,而@import是CSS提供的;

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

(3)、import只在IE5以上才能识别,而link是XHTML标签,无兼容问题;

(4)、link方式的样式的权重高于@import的权重.

5.CSS选择符有哪些?

哪些属性可以继承?

优先级算法如何计算?

CSS3新增伪类有那些?

*1.id选择器(#myid)

2.类选择器(.myclassname)

3.标签选择器(div,h1,p)

4.相邻选择器(h1+p)

5.子选择器(ul<

li)

6.后代选择器(lia)

7.通配符选择器(*)

8.属性选择器(a[rel="

external"

])

9.伪类选择器(a:

hover,li:

nth-child)

*可继承:

font-sizefont-familycolor,ULLIDLDDDT;

*不可继承:

borderpaddingmarginwidthheight;

*优先级就近原则,样式定义最近者为准;

*载入样式以最后载入的定位为准;

优先级为:

!

important>

id>

class>

tag

important比内联优先级高

CSS3新增伪类举例:

p:

first-of-type选择属于其父元素的首个<

p>

元素的每个<

元素。

last-of-type选择属于其父元素的最后<

only-of-type选择属于其父元素唯一的<

only-child选择属于其父元素的唯一子元素的每个<

nth-child

(2)选择属于其父元素的第二个子元素的每个<

:

enabled、:

disabled控制表单控件的禁用状态。

checked,单选框或复选框被选中。

6.如何居中div,如何居中一个浮动元素?

给div设置一个宽度,然后添加margin:

0auto属性

div{

width:

200px;

margin:

0auto;

}

居中一个浮动元素

确定容器的宽高宽500高300的层

设置层的外边距

.div{

Width:

500px;

height:

300px;

//高度可以不设

Margin:

-150px00-250px;

position:

relative;

相对定位

background-color:

pink;

//方便看效果

left:

50%;

top:

7.浏览器的内核分别是什么?

经常遇到的浏览器的兼容性有哪些?

原因,解决方法是什么,常用hack的技巧?

*IE浏览器的内核Trident、Mozilla的Gecko、google的WebKit、Opera内核Presto;

*png24为的图片在iE6浏览器上出现背景,解决方案是做成PNG8.

*浏览器默认的margin和padding不同。

解决方案是加一个全局的*{margin:

0;

padding:

}来统一。

*IE6双边距bug:

块属性标签float后,又有横行的margin情况下,在ie6显示margin比设置的大。

浮动ie产生的双倍距离#box{float:

left;

10px;

000100px;

}

这种情况之下IE会产生20px的距离,解决方案是在float的标签样式控制中加入——_display:

inline;

将其转化为行内属性。

(_这个符号只有ie6会识别)

渐进识别的方式,从总体中逐渐排除局部。

首先,巧妙的使用“\9”这一标记,将IE游览器从所有情况中分离出来。

接着,再次使用“+”将IE8和IE7、IE6分离开来,这样IE8已经独立识别。

css

.bb{

#f1ee18;

/*所有识别*/

.background-color:

#00deff\9;

/*IE6、7、8识别*/

+background-color:

#a200ff;

/*IE6、7识别*/

_background-color:

#1e0bd1;

/*IE6识别*/

*IE下,可以使用获取常规属性的方法来获取自定义属性,

也可以使用getAttribute()获取自定义属性;

Firefox下,只能使用getAttribute()获取自定义属性.

解决方法:

统一通过getAttribute()获取自定义属性.

*IE下,even对象有x,y属性,但是没有pageX,pageY属性;

Firefox下,event对象有pageX,pageY属性,但是没有x,y属性.

*(条件注释)缺点是在IE浏览器下可能会增加额外的HTTP请求数。

*Chrome中文界面下默认会将小于12px的文本强制按照12px显示,可通过加入CSS属性-webkit-text-size-adjust:

none;

解决.

超链接访问过后hover样式就不出现了被点击访问过的超链接样式不在具有hover和active了解决方法是改变CSS属性的排列顺序:

L-V-H-A:

a:

link{}a:

visited{}a:

hover{}a:

active{}

8.html5\CSS3有哪些新特性、移除了那些元素?

如何处理HTML5新标签的浏览器兼容问题?

如何区分HTML和HTML5?

HTML5现在已经不是SGML的子集,主要是关于图像,位置,存储,地理定位等功能的增加。

*绘画canvas元素

用于媒介回放的video和audio元素

本地离线存储localStorage长期存储数据,浏览器关闭后数据不丢失;

sessionStorage的数据在浏览器关闭后自动删除

语意化更好的内容元素,比如article、footer、header、nav、section

表单控件,calendar、date、time、email、url、search

CSS3实现圆角,阴影,对文字加特效,增加了更多的CSS选择器多背景rgba

新的技术webworker,websockt,Geolocation

移除的元素

纯表现的元素:

basefont,big,center,font,s,strike,tt,u;

对可用性产生负面影响的元素:

frame,frameset,noframes;

*是IE8/IE7/IE6支持通过document.createElement方法产生的标签,

可以利用这一特性让这些浏览器支持HTML5新标签,

浏览器支持新标签后,还需要添加标签默认的样式:

*当然最好的方式是直接使用成熟的框架、使用最多的是html5shim框架

--[ifltIE9]>

script>

src="

[endif]-->

9.你怎么来实现页面设计图,你认为前端应该如何高质量完成工作?

一个满屏品字布局如何设计?

*首先划分成头部、body、脚部;

*

实现效果图是最基本的工作,精确到2px;

与设计师,产品经理的沟通和项目的参与

做好的页面结构,页面重构和用户体验

处理hack,兼容、写出优美的代码格式

针对服务器的优化、拥抱HTML5。

10.常使用的库有哪些?

常用的前端开发工具?

开发过什么应用或组件?

*使用率较高的框架有jQuery、YUI、Prototype、Dojo、Ext.js、Mootools等。

尤其是jQuery,超过91%。

轻量级框架有Modernizr、underscore.js、backbone.js、Raphael.js等。

(理解这些框架的功能、性能、设计原理)

*SublimeText、Eclipse、Notepad、Firebug、HttpWatch、Yslow。

*城市选择插件,汽车型号选择插件、幻灯片插件。

弹出层。

(写过开源程序,加载器,js引擎更好)

JavaScript原型,原型链?

有什么特点?

*原型对象也是普通的对象,是对象一个自带隐式的__proto__属性,原型也有可能有自己的原型,如果一个原型对象的原型不为null的话,我们就称之为原型链。

*原型链是由一些用来继承和共享属性的对象组成的(有限的)对象链。

*JavaScript的数据对象有那些属性值?

  writable:

这个属性的值是否可以改。

  configurable:

这个属性的配置是否可以删除,修改。

  enumerable:

这个属性是否能在for…in循环中遍历出来或在Object.keys中列举出来。

  value:

属性值。

*当我们需要一个属性的时,Javascript引擎会先看当前对象中是否有这个属性,如果没有的话,就会查找他的Prototype对象是否有这个属性。

functionclone(proto){

  functionDummy(){}

  Dummy.prototype=proto;

  Dummy.prototype.constructor=Dummy;

  returnnewDummy();

//等价于Object.create(Person);

functionobject(old){

functionF(){};

F.prototype=old;

returnnewF();

}

varnewObj=object(oldObject);

12.列出display的值,说明他们的作用。

position的值,relative和absolute定位原点是?

1.block象块类型元素一样显示。

none缺省值。

向行内元素类型一样显示。

inline-block象行内元素一样显示,但其内容象块类型元素一样显示。

list-item象块类型元素一样显示,并添加样式列表标记。

2.

*absolute

生成绝对定位的元素,相对于static定位以外的第一个父元素进行定位。

*fixed(老IE不支持)

生成绝对定位的元素,相对于浏览器窗口进行定位。

*relative

生成相对定位的元素,相对于其正常位置进行定位。

*static默认值。

没有定位,元素出现在正常的流中

*(忽略top,bottom,left,rightz-index声明)。

*inherit规定从父元素继承position属性的值。

13.页面重构怎么操作?

编写CSS、让页面结构更合理化,提升用户体验,实现良好的页面效果和提升性能。

14.语义化的理解?

html语义化就是让页面的内容结构化,便于对浏览器、搜索引擎解析;

在没有样式CCS情况下也以一种文档格式显示,并且是容易阅读的。

搜索引擎的爬虫依赖于标记来确定上下文和各个关键字的权重,利于SEO。

使阅读源代码的人对网站更容易将网站分块,便于阅读维护理解。

15.HTML5的离线储存?

localStorage长期存储数据,浏览器关闭后数据不丢失;

sessionStorage数据在浏览器关闭后自动删除。

16.为什么要初始化CSS样式。

因为浏览器的兼容问题,不同浏览器对有些标签的默认值是不同的,如果没对CSS初始化往往会出现浏览器之间的页面显示差异。

当然,初始化样式会对SEO有一定的影响,但鱼和熊掌不可兼得,但力求影响最小的情况下初始化。

*最简单的初始化方法就是:

*{padding:

0;

}(不建议)

淘宝的样式初始化:

body,h1,h2,h3,h4,h5,h6,hr,p,blockquote,dl,dt,dd,ul,ol,li,pre,form,fieldset,legend,button,input,textarea,th,td{margin:

padding:

body,button,input,select,textarea{font:

12px/1.5tahoma,arial,\5b8b\4f53;

h1,h2,h3,h4,h5,h6{font-size:

100%;

address,cite,dfn,em,var{font-style:

normal;

code,kbd,pre,samp{font-family:

couriernew,courier,monospace;

small{font-size:

12px;

ul,ol{list-style:

none;

a{text-decoration:

hover{text-decoration:

underline;

sup{vertical-align:

text-top;

sub{vertical-align:

text-bottom;

legend{color:

#000;

fieldset,img{border:

button,input,select,textarea{font-size:

table{border-collapse:

collapse;

border-spacing:

17.(写)描述一段语义的html代码吧。

(HTML5中新增加的很多标签(如:

<

article>

、<

nav>

header>

和<

footer>

等)

就是基于语义化设计原则)

divid="

header"

>

h1>

标题<

/h1>

h2>

专注Web前端技术<

/h2>

/div>

语义HTML具有以下特性:

文字包裹在元素中,用以反映内容。

例如:

段落包含在<

元素中。

顺序表包含在<

ol>

元素中。

从其他来源引用的大型文字块包含在<

blockquote>

HTML元素不能用作语义用途以外的其他目的。

h1>

包含标题,但并非用于放大文本。

包含大段引述,但并非用于文本缩进。

空白段落元素(<

/p>

)并非用于跳行。

文本并不直接包含任何样式信息。

不使用<

font>

或<

center>

等格式标记。

类或ID中不引用颜色或位置。

18.absolute的containingblock计算方式跟正常流有什么不同?

19.position跟display、margincollapse、overflow、float这些特性相互叠加后会怎么样?

20.对BFC规范的理解?

(W3CCSS2.1规范中的一个概念,它决定了元素如何对其内容进行定位,以及与其他元素的关系和相互作用。

21.iframe有那些缺点?

*iframe会阻塞主页面的Onload事件;

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

使用iframe之前需要考虑这两个缺点。

如果需要使用iframe,最好是通过javascript

动态给iframe添加src属性值,这样可以可以绕开以上两个问题。

22.css定义的权重

以下是权重的规则:

标签的权重为1,class的权重为10,id的权重为100,以下例子是演示各种定义的权重值:

/*权重为1*/

div{

}

/*权重为10*/

.class1{

/*权重为100*/

#id1{

/*权重为100+1=101*/

#id1div{

/*权重为10+1=11*/

.class1div{

/*权重为10+10+1=21*/

.class1.class2div{

如果权重相同,则最后定义的样式会起作用,但是应该避免这种情况出现

23.eval是做什么的?

它的功能是把对应的字符串解析成JS代码并运行;

避免使用eval,不安全,非常耗性能(2次,一次解析成js语句,一次执行)。

23.写一个通用的事件侦听器函数

`//event(事件)工具集,来源:

markyun.Event={

//页面加载完成后

readyEvent:

function(fn){

if(fn==null){

fn=document;

varoldonload=window.onload;

if(typeofwindow.onload!

='

function'

){

window.onload=fn;

}else{

window.onload=function(){

oldonload();

fn();

};

},

//视能力分别使用dom0||dom2||IE方式来绑定事件

//参数:

操作的元素,事件名称,事件处理程序

addEvent:

function(element,type,handler){

if(element.addEventListener){

//事件类型、需要执行的函数、是否捕捉

element.addEventListener(type,handler,false);

}elseif(element.attachEvent){

element.attachEvent('

on'

+type,function(){

handler.call(element);

});

element['

+type]=handler;

//移除事件

removeEvent:

if(element.removeEnentListener){

element.removeEnentListener(type,handler,false);

}elseif(element.datachEvent){

element.detachEvent('

+type,handler);

+type]=null;

},

//阻止事件(主要是事件冒泡,因为IE不支持事件捕获)

stopPropagation:

function(ev){

if(ev.stopPropagation){

ev.stopPropagation();

ev.cancelBubble=true;

//取消事件的默认行为

preventDefault:

function(event){

if(event.preventDefault){

event.preventDefault();

event.returnValue=false;

//获取事件目标

getTarget:

returnevent.target||event.srcElement;

//获取event对象的引用,取到事件的所有信息,确保随时能使用event;

getEvent:

function(e){

varev=e||window.event;

if(!

ev){

varc=this.getEvent.caller;

while(c){

ev=c.arguments[0];

if(ev&

&

Event==ev.constructor){

break;

c=c.caller;

returnev;

};

24.99%的网站都需要被重构是那本书上写的?

*网站重构:

应用web标准进行设计(第2版)

25.什么叫优雅降级和渐进增强?

优雅降级:

Web站点在所有新式浏览器中都能正常工作,如果用户使用的是老式浏览器,则代码会检查以确认它们是否能正常工作。

由于IE独特的盒模型布局问题,针对不同版本的IE的hack实践过优雅降级了,为那些无法支持功能的浏览器增加候选方案,使之在旧式浏览器上以某种形式降级体验却不至于完全失效.

渐进增强:

从被所

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1