兼容ie8的浏览器有哪些(手把手教你ie11永久设置ie8模式)

IE8兼容是每位webFrontender的痛点,这里讲介绍本人在兼容ie8常用到的一些兼容方法和属性,干货马上呈上:

1.不支持background-size属性

background-size:100% 100%; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='your img url', sizingMethod='scale');

2.透明度兼容写法

opacity=0.3;filter:alpha(opacity=30);

3.背景色透明度兼容

background-color: rgba(0,0,0,0); filter: progid:DXImageTransform.Microsoft.Gradient(startColorstr=#00000000,endColorstr=#000000000);

r代表red,g代表green,b代表blue,a代表透明度。红绿蓝是三原色,所有颜色都可以由这三种颜色拼合而成。比如rgba(0,0,0,.5)就是透明度为0.5的黑色。现代浏览器是支持rgba的,但是在IE8等古董级浏览器中是不支持rgba的,IE8只能勉强支持rgb()函数(即去掉了透明度,只能表示颜色)。

web前端开发之ie8浏览器常见的兼容性问题

rgba和IE下filter数值转换

4.placeholder兼容方法

这里使用js方法来解决

$(function() { function isSupportPlaceholder() { var input = document.createElement('input'); return 'placeholder' in input; } function input(obj, value) { var $input = obj; var value = value; $input.attr({value:value}).css("color","#999999"); $input.focus(function() { if ($input.val() == value) { $(this).attr({value:""}).css("color","#333333"); } }).blur(function() { if ($input.val() == "") { $(this).attr({value:value}).css("color","#999999"); } }); } if(!isSupportPlaceholder()) { $('input').not("input[type='password']").each( function() { var value =$(this).attr("placeholder"); input($(this), value); } ); $('input[type="password"]').each( function() { var pwdField = $(this); var pwdVal = pwdField.attr('placeholder'); var pwdId = pwdField.attr('id'); // 重命名该input的id为原id后跟1 pwdField.after('<input id="' + pwdId +'1" type="text" value='+pwdVal+' autocomplete="off" />'); var pwdPlaceholder = $('#' + pwdId + '1'); pwdPlaceholder.show(); pwdField.hide(); pwdPlaceholder.focus(function(){ pwdPlaceholder.hide(); pwdField.show(); pwdField.focus(); }); pwdField.blur(function(){ if(pwdField.val() == '') { pwdPlaceholder.show(); pwdField.hide(); } }); } ); }});

结语

ie8的坑远不止这些,一些常用的伪类,flex布局就别想用了,如果网站是B2C的性质,还是老老实实用最原始的布局吧。时间有限,就先写这些最常用的兼容,本文将不定期更新,根据情况加入其它hack…

(0)
小多多的头像小多多创始人

相关推荐

发表回复

登录后才能评论