html兼容性面试题

HTML

1、你都做过哪些兼容性问题?

HTML兼容性:

h5新标签只能兼容到ie9,如果想要兼容ie低版本浏览器,需要引入html5shiv.js文件,其cdn写法如下:

<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>

CSS兼容性:

1.1、媒体查询兼容性,ie9以下不支持媒体查询,需要引入response.js文件,其cdn写法如下:

<script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>

1.2、CSS Hack:

1.2.1、属性前缀:例如 IE6能识别下划线和星号,IE7能识别星号,但不能识别下划线,IE6~IE10都认识"\9",但firefox前述三个都不能认识。

.red { 
    _color: red; /* ie6 */
    *color: red; /* ie7 */
    color: red\9; /* ie8/9/10 */
}

1.2.2、选择器前缀:例如 IE6能识别 * html .class{},IE7能识别 +html .class{}或者*:first-child+html .class{}。

*.red {} /* ie6 */
+.red {} /* ie7 */

1.2.3、条件注释:

针对所有IE(注:IE10+已经不再支持条件注释):

<!--[if IE]>IE浏览器显示的内容 <![endif]-->

针对IE6及以下版本:

<!--[if lt IE 6]>只在IE6-显示的内容 <![endif]-->

这类Hack不仅对CSS生效,对写在判断语句里面的所有代码都会生效。

1.3、厂商前缀:谷歌-webkit-、火狐-moz-、IE-ms-、欧朋-o-

1.4、其它兼容性:

1.4.1、ie老版本浮动造成的双边距问题:display:inline;

1.4.2、图片间隙:父盒子设置font-size: 0; 或者图片设置display: block;

1.4.3、块元素默认高度:overflow: hidden;

JavaScript兼容性:一般使用渐进增强和优雅降级的方式来解决兼容性问题。

// 优雅降级
var xhr = null;
if(XMLHttpRequest){
    xhr = new XMLHttpRequest();
}else{
    xhr = new ActiveXObject('Microsoft.XMLHTTP');
}
​
// 渐进增强
/
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值