【问题标题】:Gradient is not rounded in IE9IE9 中的渐变不四舍五入
【发布时间】:2013-08-19 23:38:34
【问题描述】:

我创建了一个圆角按钮,在 IE9 中渐变背景不是圆角的:

这是 CSS:

.search button {
    padding: 10px;
    font-family: "OpenSansSemibold", "Helvetica", Arial, sans-serif;
    font-size: 16px;
    display: inline-block;
    outline: none;
    cursor: pointer;
    text-align: center;
    text-decoration: none;
    padding: .5em 2em .55em;
    text-shadow: 0 1px 1px rgba(0,0,0,.3);
    -webkit-border-radius: .5em; 
    -moz-border-radius: .5em;
    border-radius: .5em;
    -webkit-box-shadow: 0 1px 2px rgba(0,0,0,.2);
    -moz-box-shadow: 0 1px 2px rgba(0,0,0,.2);
    box-shadow: 0 1px 2px rgba(0,0,0,.2);
    color: #fef4e9;
    border: solid 1px #da7c0c;
    background: #f78d1d;
    background: -webkit-gradient(linear, left top, left bottom, from(#faa51a), to(#f47a20));
    background: -moz-linear-gradient(top,  #faa51a,  #f47a20);
    filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='#faa51a', endColorstr='#f47a20');
}

我该如何解决这个问题?

【问题讨论】:

标签: css internet-explorer-9 rounded-corners


【解决方案1】:

从您的 css 类中删除 filter 样式。

JS Fiddle Example

如果你想要IE8及以下的渐变,那么你需要创建一个单独的CSS文件并将其包装在这个文件中:

<!--[if lte IE 8]>
[css path here]
<![endif]-->

在 IE9 中不能同时使用渐变和圆角按钮。事实上,Twitter 的 Bootstrap 框架将 IE9 按钮降级为带有圆角的纯色背景。

【讨论】:

  • 在 IE9 中,所有具有圆角和 CSS 渐变的元素都会发生这种情况,而不仅仅是按钮。一个有用的后备选项是使用背景图像而不是 CSS 渐变。
【解决方案2】:

IE9 是一个完美的浏览器;问题在于使用旧的filter 样式。

它们从来都不是什么好东西,它们只是出于遗留支持的原因才真正留在 IE9 中。他们有很多怪癖,包括这个众所周知的。

您的问题是 IE9 不支持标准 CSS 渐变,所以问题是如果您想使用它们而不是 filter,该怎么做?

答案有很多种,但最好的答案是CSS3Pie

这是一个小的 javascript 库,允许您在 IE9(以及从 IE6 开始的所有其他 IE 版本)中使用标准 CSS 渐变。它还为不支持它们的IE版本添加了border-radiusbox-shadow

它不显眼,不会在其他浏览器中造成任何额外开销。

CSS3Pie 使用 IE 的矢量图形语言 VML 来渲染其渐变,因此它不受 filter 错误的影响。

如果您真的想避免使用 Javascript,可以使用渐变为自己创建 VML 或 SVG 元素。这可以使用 URI 编码的图像在您的 CSS 中完成(例如 here)。但是让 CSS3Pie 为你做这件事要容易得多。

您唯一可用的其他解决方案是加载老式背景图形,或者仅提供纯色背景颜色作为备用选项。

无论如何,您可能应该提供备用纯色,但对于这个问题,我的钱是 CSS3pie 是最好的解决方案。

希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 2023-01-12
    • 1970-01-01
    • 2012-08-04
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-23
    • 1970-01-01
    相关资源
    最近更新 更多