应聘web前端开发面试时问到的基础问题

由于我是第一次面试web前端开发,面试之前也没做很多准备非常紧张,面试时间是早上11点,我提前半个小时来到了这里,HR叫我去填了一下表,填完表就倒杯水让我在这里休息一下,并没有问我什么问题,过了一会有个秃顶的中年大叔走过来,我猜这肯定是这里的IT高管,经理之类的,毕竟我们IT界大多数大神是没多少头发的言论一直流传下来,他首先叫我自我介绍一下让他有空去看我的简历,自我介绍完就直接问我问题了。

一.html5与html有什么区别?

1.简化了文档类型和字符集。

html:<DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11-strict.dtd">
html5:<DOCTYPE HTML>

2.html5的新结构。

html认为网页应该像XML文档和图书一样有结构,如导航,网页体内容,工具栏,页眉,页脚,因此HTML5新增了一些标记以实现这些网页结构:<section>标签,<header>标签,<footer>标签,<nav>标签,<article>标签,<aside>标签。

3.新增内联元素。

<mark>标签,<time>标签,<meter>标签,<progress>标签。

4.支持动态页面。

<menu>标签和<menuitem>右键菜单

5.全新的表单设计。

支持html4中定义的所有标准输入控件,而且新增了输入控件。

6.强大的绘图和多媒体功能。

使用 Canvas API 动态地绘制各种效果精美的图形;绘制可伸缩矢量图形(SVG);新增audiovideo元素,可以不用借助flash等第三方插件播放音频和视频。

7.打造桌面应用的一系列新功能。

web通信;本地存储;离线应用。

8.获取地理位置。

9.支持多线程。

10.html5废弃的标签:

表现性元素标签:<basefont>,<big>,<center>,<font>,<s>,<strike>,<tt>,<u>;框架类元素:<frame>,frameset>,noframes;属性类:aliginbody标签上bgcolorheightwidth属性;iframe元素上的scrolling属性;valign;hspasevspace;table标签上的cellpaddingcellspacing,和border属性;header标签上的profile属性;链接标签a上的target属性;imgiframe元素的longdesc属性;其他类元素:acronymappletdir

二,常见的浏览器的内核。

1、Trident内核:

IE最先开发或使用的,也称IE内核,360浏览器使用的也是IE内核;
`

2、Webkit内核:

`谷歌chrome浏览器最先开发或使用,也叫谷歌内核,枫树浏览器、太阳花使用的也是谷歌内核;

3、Gecko内核:

Netscape6开始采用的内核,后来的Mozilla FireFox (火狐浏览器) 也采用了该内核,K-Meleon浏览器也是使用这种内核;

4、Presto内核:

目前只有Opera浏览器采用该内核此外,由于IE浏览器在国内的普及率非常高,所以造成了很多网上银行和支付系统只支持IE的Trident内核,其他浏览器访问根本无法进行正常支付和转账等业务。这就造成了经常在网上购物的人离不开Trident内核的IE浏览器。但是Trident内核的速度和兼容性上又是在比不上Chrome浏览器的WebKit内核和Firefox浏览器的Gecko内核。于是双核浏览器应运而生,比如傲游、枫树浏览器(ChromePlus)、搜狗高速浏览器。

三,浏览器不兼容的问题。

这个是百度出来的,是Asina写的:
前端浏览器兼容问题总结
前端解决不同浏览器及不同版本的兼容性问题

浏览器兼容问题一:不同浏览器的标签默认的外补丁和内补丁不同

问题症状:随便写几个标签,不加样式控制的情况下,各自的margin和padding差异较大。
解决方案:CSS里*{margin:0; padding:0;}
备注:这个是最常见的也是最易解决的一个浏览器兼容性问题,几乎所有的CSS文件开头都会用通配符*来设置各个标签的内外补丁是0;

浏览器兼容问题二:块属性标签float后,又有横行的margin情况下,在IE6显示margin比设置的大

问题症状:常见症状是IE6中后面的一块被顶到下一行
解决方案:在float的标签样式控制中加入display:inline;将其转化为行内属性
备注:我们最常用的就是div+CSS布局了,而div就是一个典型的块属性标签,横向布局的时候我们通常都是用divfloat实现的,横向的间距设置如果用margin实现,这就是一个必然会碰到的兼容性问题。

浏览器兼容问题三:设置较小高度标签(一般小于10px),在IE6,IE7,高度超出自己设置的高度

问题症状:IE6,7和遨游里这个标签的高度不受控制,超出自己设置的高度。
解决方案:给超出高度的标签设置overflow:hidden;或者设置行高line-height小于你自己设置的高度。
备注:这种情况一般出现在我们设置小圆角背景的标签里。出现这个问题的原因是IE8之前的浏览器都会给标签一个最小默认的行高的高度。即使你的标签是空的,这个标签的高度还是会达到默认的行高。

浏览器兼容问题四:行内属性标签,设置display:block后采用float布局,又有横行的margin的情况,IE6间距BUG

问题症状:IE6里的间距比超过设置的间距

解决方案:在display:block;后面加入display:inline;display:table;
备注:行内属性标签,为了设置宽高,我们需要设置display:block;(除了input标签比较特殊)。再用float布局并有横向的margin后,在IE6下,他就具有了块属性float后的横向margin的BUG。不过因为它本身家就是行内属性标签,所以我们再加上display:inline的话,它的高宽就不可设了。这时候我们还需要在display:inline后面加入display:table

浏览器兼容问题五:图片默认有间距

问题症状:几个img标签放在一起的时候,有些浏览器会默认的间距,加了问题一中提到的通配符也不起作用。
解决方案:使用float属性为img布局
备注:因为img标签是行内属性标签,所以只要不超出容器宽度,img标签都会排在一行里,但是部分浏览器的img标签之间会有个间距。去掉这个间距使用float是正确的(ps:不建议使用负margin,虽然能解决,但是负margin本身就是容易引起浏览器兼容问题的用法,所以禁止使用)。

浏览器兼容问题六:标签最低高度设置min-height不兼容

问题症状:因为min-height本身就是一个不兼容的css属性,所以设置min-height时不能很好的被各个浏览器兼容
解决方案:如果我们要设置一个标签的最小高度200px,需要进行的设置为{min-height:200px;height:auto!important;height:200px;overflow:visible;}
备注:在B/S系统前端开时,有很多情况下我们又这种需求。当内容小于一个值(如300px)时。容器的高度为300px;当内容高度大于这个值时,容器高度被撑高,而不是出现滚动条。这时候我们就会面临这个兼容性问题。

浏览器兼容问题七:各种特殊样式的兼容,比如透明度、圆角、阴影等。特殊样式每个浏览器的代码区别很大,所以,只能现查资料通过给不同浏览器写不同的代码来解决。

做兼容页面的方法是:每写一小段代码(布局中的一行或者一块)我们都要在不同的浏览器中看是否兼容,当然熟练到一定的程度就没这么麻烦了。建议经常会碰到兼容性问题的新手使用。很多兼容性问题都是因为浏览器对标签的默认属性解析不同造成的,只要我们稍加设置都能轻松地解决这些兼容问题。如果我们熟悉标签的默认属性的话,就能很好的理解为什么会出现兼容问题以及怎么去解决这些兼容问题。

浏览器兼容性问题八:字体大小定义不同

问题症状:对字体大小small定义不同,Firefox为13px,而IE为16px,差别比较大

解决方法:使用指定的字体大小如14px或者使用em

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值