繁体   English   中英

IE9边界半径不一致

[英]IE9 border-radius inconsistency

有任何想法吗?

我有一个网站有边界半径有时在IE9工作,但其他人没有。 我还包括......

<meta http-equiv="X-UA-Compatible" content="IE=9" />

在标题中。 如果存在或不存在,这似乎没有区别。 它适用于页面的各个部分,如下面的...

#nav a {
font-weight: bold;
color: #fff;
text-decoration: none;
display: block;
padding:  8px 20px;
margin: 0;
-webkit-border-radius: 1.6em;
-moz-border-radius: 1.6em;
border-radius: 1.6em;
/* text-shadow: 0 1px 1px rgba(0, 0, 0, .3); */
font-size: 18px;
background-color:rgba(72,124,158,0);
    -webkit-transition:All 0.5s ease;
    -moz-transition:All 0.5s ease;
    -o-transition:All 0.5s ease;

}

但不是在下面的例子中。

nav {
margin: 0;
padding: 0;
line-height: 100%;
-webkit-border-top-left-radius: 2em;
-moz-border-radius-topleft: 2em;
border-top-left-radius: 2em;
-webkit-border-bottom-left-radius: 2em;
-moz-border-radius-bottomleft: 2em;
border-bottom-left-radius: 2em;
-webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, .4);
-moz-box-shadow: 0 1px 3px rgba(0, 0, 0, .4);
box-shadow: 0 1px 3px rgba(0, 0, 0, .4);
background: #007bb6; /* for non-css3 browsers */
filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='#004677',   endColorstr='#007bb6'); /* for IE */
background: -webkit-gradient(linear, left top, left bottom, from(#004677), to(#007bb6)); /* for webkit browsers */
background: -moz-linear-gradient(top,  #004677,  #007bb6); /* for firefox 3.6+ */
background: -o-linear-gradient(top,  #004677,  #007bb6); /* for Opera */
background: linear-gradient(top,  #004677,  #007bb6); 
/* border: solid 1px #6d6d6d; */    
height: 38px;
display: block;
float: right;
width: 750px;
margin-top: 15px;
}

我也看不到它使用px或em的工作模式,或者元素是否与渐变或框阴影结合使用。 有没有人有类似的东西?

谢谢

尝试没有DirectX渐变,它之前覆盖了我的圆角。

filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='#004677',   endColorstr='#007bb6'); /* for IE */

将.nav类中的填充更改为10px,并查看它是否仍然存在。

这绝对是导致问题的线性渐变滤波器。 一个很好的方法是使用Modernizr进行特征检测,然后通过类提供不同的规则

.cssgradients {
..use the linear-gradient rules
}
.no-cssgradients {
.. another rule, not using the ie filter
}

在.no-cssgradients声明中,您可以提供背景图像,甚至更酷的数据uri来减少http请求,例如

background-image: url(data:image/png;base64,iVBORw0KGgoA....);

您可以使用翻译的在线工具,你的背景图像,如这一个

我已经使用这种技术成功地将线性渐变和圆角组合到较旧的浏览器中,增加了CSS3 PIE ,没有CSS3 PIE,然后尝试用滤波器替换线性渐变。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM