传智播客旗下品牌:  黑马程序员  |  博学谷  |  传智专修学院

一样的教育,不一样的品质     全国咨询热线:400-618-4000

2017最新web前端经典面试题之css浏览器兼容性?

更新时间:2017年11月20日15时06分 来源:传智播客

CSS浏览器兼容性?


答题技巧:因为这个问题主要是看你经验,一般有了开发经验的都会遇到这样的坑,你只要说出几个来大致就可以了。


1、对齐文本和文本输入框


问题:

当input元素在设置了高时,在IE7、IE8、IE9下会出现文本和文本输入框不能对齐的现象,其他正常,包括opera

解决:

vertical-align:middle;


2、容器宽度在浏览器中解释不同


问题:

不同浏览器下宽度不同,比如说设置width:200px,在iE7、IE8、IE9下显示的是200px,在FF、Chrome、Opera中显示的是220px

解决:

用width:200px; *width:220px,其中iE7、IE8、IE9会识别两个宽度,以后者为准,故宽度为220px,在FF、Chrome、Opera中,识别第一个宽度,解析


3、Div居中问题


问题:

IE7、IE8、IE9在设置了margin-left和margin-right为auto后,并不能使div居中显示,其他行

解决:

设定body居中,定义text-algin: center


4、字体大小问题


问题:

对字体大小small的定义不同,在Firefox和Chrome中为small,而IE7、IE8、IE9中为16px,差别挺大

解决:

明确说明字体的大小,例如16px


5、td高度的问题 (这里有兴趣的同学可以研究一下。知道了这个问题,还在研究当中)


问题:

在IE9、IE10、FF、chrome中table中td的高度不包含border的宽度,但是IE7和IE8中td的高度包含了border的高度,设置line-height和height一样。

解决:


6、如何对其文本和文本输入框的内容()


问题:

当input元素在设置了高和设置了text-align:center时,在IE7、IE8、IE9下会出现文本和文本输入框内容不能对齐的现象,其他正常,包括opera

解决:

在样式中设置line-height:100px


7、CSS HACK的方法


所有浏览器 通用 height: 100px;

IE6 专用 _height: 100px;

IE7 专用 *+height: 100px;

IE6、IE7 共用 *height: 100px;

IE7、FF 共用 height: 100px !important;


代码的顺序一定不能颠倒了,要不又前功尽弃了。因为浏览器在解释程序的时候,如果重名的话,会用后面的覆盖前面的,就象给变量赋值一个道理,所以我们把通用的放前面,越专用的越放后面


这里举了几个例子,同学们可以自己总结。


本文版权归传智播客前端与移动开发学院所有,欢迎转载,转载请注明作者出处。谢谢!

作者:传智播客前端与移动开发培训学院

首发:http://www.itcast.cn/web/