web前端面试题Word文档下载推荐.docx

上传人:b****6 文档编号:20698052 上传时间:2023-01-25 格式:DOCX 页数:23 大小:298.54KB
下载 相关 举报
web前端面试题Word文档下载推荐.docx_第1页
第1页 / 共23页
web前端面试题Word文档下载推荐.docx_第2页
第2页 / 共23页
web前端面试题Word文档下载推荐.docx_第3页
第3页 / 共23页
web前端面试题Word文档下载推荐.docx_第4页
第4页 / 共23页
web前端面试题Word文档下载推荐.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

web前端面试题Word文档下载推荐.docx

《web前端面试题Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《web前端面试题Word文档下载推荐.docx(23页珍藏版)》请在冰豆网上搜索。

web前端面试题Word文档下载推荐.docx

首先我讲讲如何触发两种模式:

加入xml头部声明可以触发IE浏览器的Quirksmode,触发之后,浏览器解析方式就和IE5.5一样,拥有IE5.5一样的bug和其他问题,行为(Javascript)也是如此。

IE6的触发在XHTML的DOCTYPE前加入XML声明<

?

xmlversion="

1.0"

encoding="

utf-8"

>

<

!

DOCTYPEhtmlPUBLIC"

-//W3C//DTDXHTML1.0Strict//EN"

"

http:

//www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"

IE7的触发在XML声明和XHTML的DOCTYPE之间加入HTML注释<

--...andkeepIE7inquirksmode-->

IE6和IE7都可以触发的在HTML4.01的DOCTYPE文档头部加入HTML注释<

--quirksmode-->

DOCTYPEHTMLPUBLIC"

-//W3C//DTDHTML4.01//EN"

//www.w3.org/TR/html4/strict.dtd"

其次是这样的意义各个浏览器的混杂模式,基本就是各个浏览器的私有模式,不相互兼容。

所以,除非是为了兼容的问题,比如你不想修改很久很久以前做的IEONLY的网页,否则刻意触发混杂模式没有任何意义。

2:

行内元素有哪些?

块级元素有哪些?

CSS的盒模型?

一.行内元素和块级元素有哪些?

块级元素

<

address>

informationonauthor

blockquote>

longquotation

button>

pushbutton

caption>

tablecaption

dd>

definitiondescription

del>

deletedtext

div>

genericlanguage/stylecontainer

dl>

definitionlist

dt>

definitionterm

fieldset>

formcontrolgroup

form>

interactiveform

h1>

heading

h2>

h3>

h4>

h5>

h6>

hr>

horizontalrule

iframe>

inlinesubwindow

ins>

insertedtext

legend>

fieldsetlegend

li>

listitem

map>

client-sideimagemap

noframes>

alternatecontentcontainerfornonframe-basedrendering

noscript>

alternatecontentcontainerfornonscript-basedrendering

object>

genericembeddedobject

ol>

orderedlist

p>

paragraph

pre>

preformattedtext

table>

table

tbody>

tablebody

td>

tabledatacell

tfoot>

tablefooter

th>

tableheadercell

thead>

tableheader

tr>

tablerow

ul>

unorderedlist

行内元素

a>

anchor

abbr>

abbreviatedform

acronym>

acronym

b>

boldtextstyle

bdo>

I18NBiDiover-ride

big>

largetextstyle

br>

forcedlinebreak

cite>

citation

code>

computercodefragment

dfn>

instancedefinition

em>

emphasis

i>

italictextstyle

img>

Embeddedimage

input>

formcontrol

kbd>

texttobeenteredbytheuser

label>

formfieldlabeltext

q>

shortinlinequotation

samp>

sampleprogramoutput,scripts,etc.

select>

optionselector

small>

smalltextstyle

span>

strong>

strongemphasis

sub>

subscript

sup>

superscript

textarea>

multi-linetextfield

tt>

teletypeormonospacedtextstyle

var>

instanceofavariableorprogramargument

二.行内元素与块级元素有什么不同?

1.尺寸-块级元素和行内元素之间的一个重要的不同点 

行内元素和width

W3CCSS2标准规定行内元素、非置换元素不会应用width属性。

以下例子中,对行内元素<

应用了width:

200px,你可以看到,根本就没有什么效果。

行内元素和height

W3CCSS2标准规定行内元素、非置换元素不会应用height属性,但是盒子高度可以通过line-height来指定。

以下例子,对行内元素<

应用了height:

50px,你可以看到什么效果都没。

行内元素和padding

你可以给行内元素设置padding,但只有padding-left和padding-right生效。

以下例子,行内元素<

应用了padding:

50px。

你可以看到对左右的内容有影响,但是对上下没影响。

行内元素和marging

margin属性也是和padding属性一样,对行内元素左右有效,上下无效。

下面的例子,对<

应用了margin:

50px,你可以看到左右边缘是生效了但是内容上下却没有。

记住对行内元素

设置宽度width 

无效。

设置高度height 

无效,可以通过line-height来设置。

设置margin只有左右margin有效,上下无效。

设置padding只有左右padding有效,上下则无效。

注意元素范围是增大了,但是对元素周围的内容是没影响的,看图上效果就知道了

盒子模型

W3C组织建议把所有网页上的对像都放在一个盒(box)中,设计师可以通过创建定义来控制这个盒的属性,这些对像包括段落、列表、标题、图片以及层。

盒模型主要定义四个区域:

内容(content)、边框距(padding)、边界(border)和边距(margin)。

对于初学者,经常会搞不清楚margin,background-color,background-image,padding,content,border之间的层次、关系和相互影响。

这里提供一张盒模型的3D示意图,希望便于你的理解和记忆。

每个HTML元素都可以看作一个装了东西的盒子,盒子里面的内容到盒子的边框之间的距离即填充(padding),盒子本身有边框(border),而盒子边框外和其他盒子之间,还有边界(margin)。

盒模型的实际宽度

关于盒模型,还有以下几点需要注意:

  ·

对于块级元素(display:

block),未浮动的垂直相邻元素的上边界和下边界会被压缩,例如:

有上下2个元素,上元素的下边界为5px,下面元素的上边界为20px,则实际2个元素的间距为20px(2个边界值中较大的值)。

如图所示。

注1.块级元素(display:

block)

每个块级元素都从一个新行开始,而且其后的元素也需另起一行开始,标题、段落、表格、层、body等都是块级元素。

块级元素只能作为其他块级元素的子元素,而且需要一定的条件。

内联元素,例如<

、<

等,定义上下边界不会影响到行高(line-height),内联元素距离上一行元素的距离由行高决定,而不是填充或边界。

注2.内联元素(display:

inline)

内联元素不需要在新行内显示,而且也不强迫其后的元素换行,如a、em、span等都为内联元素。

内联元素可以为任何其他元素的子元素。

浮动元素(无论左或者右浮动)边界不压缩,且若浮动元素不声明宽度,则其宽度趋向于0,即压缩到其内容能承受的最小宽度。

如果盒中没有内容,则即使定义了宽度和高度都为100%,实际上只占0%,因此不会被显示,此点在采取层布局的时候需特别注意。

边界值可为负,其显示效果各浏览器可能不相同。

填充值不可为负。

边框默认的样式(border-style)为不显示(none)。

3.CSS引入的方式有哪些?

link和@import的区别是?

本质上,这两种方式都是为了加载CSS文件,但还是存在着细微的差别。

差别1:

老祖宗的差别。

link属于XHTML标签,而@import完全是CSS提供的一种方式。

link标签除了可以加载CSS外,还可以做很多其它的事情,比如定义RSS,定义rel连接属性等,@import就只能加载CSS了。

差别2:

加载顺序的差别。

当一个页面被加载的时候(就是被浏览者浏览的时候),link引用的CSS会同时被加载,而@import引用的CSS会等到页面全部被下载完再被加载。

所以有时候浏览@import加载CSS的页面时开始会没有样式(就是闪烁),网速慢的时候还挺明显(梦之都加载CSS的方式就是使用@import,我一边下载一边浏览梦之都网页时,就会出现上述问题)。

差别3:

兼容性的差别。

由于@import是CSS2.1提出的所以老的浏览器不支持,@import只有在IE5以上的才能识别,而link标签无此问题。

差别4:

使用dom控制样式时的差别。

当使用javascript控制dom去改变样式的时候,只能使用link标签,因为@import不是dom可以控制的。

大致就这几种差别了(如果还有什么差别,大家告诉我,我再补充上去),其它的都一样,从上面的分析来看,还是使用link标签比较好。

标准网页制作加载CSS文件时,还应该选定要加载的媒体(media),比如screen,print,或者全部all等。

这个我到CSS高级教程中再给大家介绍。

注:

1,网友comehope在留言中提出了另一种区别。

差别5:

@import可以在css中再次引入其他样式表,比如可以创建一个主样式表,在主样式表中再引入其他的样式表,如:

main.css

———————-

@import“sub1.css”;

@import“sub2.css”;

sub1.css

p{color:

red;

sub2.css

.myclass{color:

blue}

这样更利于修改和扩展.

猴子提示:

这样做有一个缺点,会对网站服务器产生过多的HTTP请求,以前是一个文件,而现在却是两个或更多文件了,服务器的压力增大,浏览量大的网站还是谨慎使用。

有兴趣的可以观察一下像新浪等网站的首页或栏目首页代码,他们总会把css或js直接写在html里,而不用外部文件。

4.CSS选择符有哪些?

哪些属性可以继承?

优先级算法如何计算?

内联和important哪个优先级高?

5:

前端页面有哪三层构成,分别是什么?

作用是什么?

最准确的网页设计思路是把网页分成三个层次,即:

结构层、表示层、行为层。

网页的结构层(structurallayer)由HTML或XHTML之类的标记语言负责创建。

标签,也就是那些出现在尖括号里的单词,对网页内容的语义含义做出了描述,但这些标签不包含任何关于如何显示有关内容的信息。

例如,P标签表达了这样一种语义:

“这是一个文本段。

网页的表示层(presentationlayer)由CSS负责创建。

CSS对“如何显示有关内容”的问题做出了回答。

网页的行为层(behaviorlayer)负责回答“内容应该如何对事件做出反应”这一问题。

这是Javascript语言和DOM主宰的领域。

8:

你做的页面在哪些流览器测试过?

这些浏览器的内核分别是什么?

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

怎么会出现?

解决方法是什么?

点评:

css的兼容性也是大家关注的热点。

大家一定要注意多测试。

Javascript多浏览器兼容性问题及解决方案

兼容性处理要点

1、DOCTYPE影响CSS处理

2、FF:

设置padding后,div会增加height和width,但IE不会,故需要用!

important多设一个height和width

3、FF:

支持!

important,IE则忽略,可用!

important为FF特别设置样式

4、div的垂直居中问题:

vertical-align:

middle;

将行距增加到和整个DIV一样高line-height:

200px;

然后插入文字,就垂直居中了。

缺点是要控制内容不要换行

5、在mozillafirefox和IE中的BOX模型解释不一致导致相差2px解决方法:

div{margin:

30px!

important;

margin:

28px;

}

注意这两个margin的顺序一定不能写反,!

important这个属性IE不能识别,但别的浏览器可以识别。

所以在IE下其实解释成这样:

div{maring:

30px;

28px}

重复定义的话按照最后一个来执行,所以不可以只写margin:

XXpx!

浏览器差异

1、ul和ol列表缩进问题

消除ul、ol等列表的缩进时,样式应写成:

list-style:

none;

0px;

padding:

其中margin属性对IE有效,padding属性对FireFox有效。

[注]经验证,在IE中,设置margin:

0px可以去除列表的上下左右缩进、空白以及列表编号或圆点,设置padding对样式没有影响;

在Firefox中,设置margin:

0px仅仅可以去除上下的空白,设置padding:

0px后仅仅可以去掉左右缩进,还必须设置list-style:

none才能去除列表编号或圆点。

也就是说,在IE中仅仅设置margin:

0px即可达到最终效果,而在Firefox中必须同时设置margin:

0px、padding:

0px以及list-style:

none三项才能达到最终效果。

2、CSS透明问题

IE:

filter:

progid:

DXImageTransform.Microsoft.Alpha(style=0,opacity=60)。

FF:

opacity:

0.6。

[注]最好两个都写,并将opacity属性放在下面。

3、CSS圆角问题

ie7以下版本不支持圆角。

-moz-border-radius:

4px,或者-moz-border-radius-topleft:

4px;

-moz-border-radius-topright:

-moz-border-radius-bottomleft:

-moz-border-radius-bottomright:

[注]圆角问题是CSS中的经典问题,建议使用JQuery框架集来设置圆角,让这些复杂的问题留给别人去想吧。

不过jQuery的圆角只看到支持整个区域的圆角,没有支持边框的圆角,不过这个边框的圆角可以通过一些简单的手段来实现,下次有机会介绍下。

4、cursor:

handVScursor:

pointer

问题说明:

firefox不支持hand,但ie支持pointer,两者都是手形指示。

解决方法:

统一使用pointer。

5、字体大小定义不同

对字体大小small的定义不同,Firefox中为13px,而IE中为16px,差别挺大。

使用指定的字体大小如14px。

并列排列的多个元素(图片或者链接)的div和div之间,代码中的空格和回车在firefox中都会被忽略,而IE中却默认显示为空格(约3px)。

6、CSS双线凹凸边框

border:

2pxoutset;

-moz-border-top-colors:

#d4d0c8white;

-moz-border-left-colors:

-moz-border-right-colors:

#404040#808080;

-moz-border-bottom-colors:

浏览器bug

1、IE的双边距bug

设置为float的div在ie下设置的margin会加倍。

这是一个ie6都存在的bug。

解决方案:

在这个div里面加上display:

inline;

例如:

#divid=”imfloat”>

相应的css为

以下为引用的内容:

复制代码代码如下:

#IamFloat{

float:

left;

5px;

/*IE下理解为10px*/

display:

/*IE下再理解为5px*/

关于CSS中的问题实在太多了,甚至同样的CSS定义在不同的页面标准中的显示效果都是不一样的。

一个合乎发展的建议是,页面采用标准XHTML标准编写,较少使用table,CSS定义尽量依照标准DOM,同时兼顾IE、Firefox、Opera等主流浏览器。

很多情况下,FF和Opera的CSS解释标准更贴近CSS标准,也更具有规范性。

2、IE选择符空格BUG

今天在给博客的段落样式设置首字符样式的时候发现,原来一个空格也可以使样式失效。

请看以下代码:

-//W3C//DTDXHTML1.0Transitional//EN"

//www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"

htmlxmlns="

//www.w3.org/1999/xhtml"

head>

title>

/title>

styletype="

text/css"

--

p{font-size:

12px;

p:

first-letter{font-size:

300%}

-->

/style>

/head>

body>

对于世界而言,你是一个人;

但是对于某个人,你是他的整个世界。

纵然伤心,也不要愁眉不展,因为你不知是谁会爱上你的笑容。

/p>

/body>

/html>

[/code]

纵然伤心,也不要

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

当前位置:首页 > 经管营销 > 经济市场

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

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