你可以尝试用填充更换边境IE 10和更早版本通过使用一些javascript和一个附加的类:
CSS:
.menu_tab {
width: 90px;
height:250px;
background: rgb(230,140,130);
border: 28px solid rgb(230,140,130);
border-image: url("http://chromafunk.com/images/menu_tab.png") 30 30 40 30 fill round;
border-radius: 20px;
border-top: 0px;
background-clip: padding-box;
}
.menu_tab_ie{
padding:28px;
padding-top:0px;
border:none;
}
How can you detect the version of a browser?
navigator.bwsr= (function(){
var ua= navigator.userAgent, tem,
M= ua.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i) || [];
if(/trident/i.test(M[1])){
tem= /\brv[ :]+(\d+)/g.exec(ua) || [];
return 'IE '+(tem[1] || '');
}
if(M[1]=== 'Chrome'){
tem= ua.match(/\bOPR\/(\d+)/)
if(tem!= null) return 'Opera '+tem[1];
}
M= M[2]? [M[1], M[2]]: [navigator.appName, navigator.appVersion, '-?'];
if((tem= ua.match(/version\/(\d+)/i))!= null) M.splice(1, 1, tem[1]);
return M.join(' ');
})();
- 将返回一个字符串,如“Chrome 35”或“IE 11”。
这将检查“IE”,并早于11的版本添加将应用填充和删除边框类:
var x = navigator.bwsr;
if(x.indexOf('IE')>-1){
var xNum = x.split(' ');
var x2=Number(xNum[1]);
if(x2<11){
$('.menu_tab').addClass('menu_tab_ie');
}
else {console.log('border-image should display');}
}
else {console.log('border-image should display');}
这里是你的jsfiddle with these edits:
http://jsfiddle.net/67tG6/18/
谢谢克里斯。这很有魅力。不知道*为什么*它的工作虽然!我不知道有边界半径定义,即使边界没有出现,仍然会显示边界。这是一件很好的事情要知道。尽管如此,我仍然好奇为什么我首先遇到了这个问题。据我所知,圆角边框是非常标准的东西。我以前使用过它们,并没有注意到IE9/10上的差距。然而在这个例子中,我得到了差距。如果您对差距出现的原因有任何了解,我将不胜感激。 – MichaeMichael