html - 使用 IE 过滤器进行背景渐变

标签 html internet-explorer css

我在我的 CSS 中使用此属性为 IE 创建渐变。

.icons,
#nav {
filter: progid:DXImageTransform.Microsoft.gradient(   startColorstr='#9e9ccf', endColorstr='#423f88', GradientType=0 ); /* IE6-9 */
}

应用后,我可以看到预期的漂亮渐变。但是,我的图标不再应用 border-radius,我的 #nav z-index 失败,我的子菜单无法按预期加载并根据 #nav 高度和宽度进行裁剪。在所有 IE 中。

最佳答案

IE 旧的专有 filter 样式与 border-radius 不兼容。他们使用具有方 Angular 的 activeX 控件并覆盖您可能尝试使用的任何圆 Angular 。这是一个已知错误,没有解决方法。

filter 作为 activeX 控件的另一个问题是它带有 activeX 控件所具有的所有错误和怪癖。这包括搞乱分层,以及其他类似的有趣内容。我的建议是不惜一切代价避免使用 filter

我会注意到 border-radius 无论如何只能在 IE9 向上工作,所以你的问题不适用于 IE8 或更早版本。

解决方案:我建议您试试 CSS3Pie .这是一个 javascript 库,可插入 IE6 - IE9,并为这些浏览器提供对标准 CSS3 渐变的更好支持。它使用 VML 图形来实现,因此不需要使用 filter,因此没有 filter 渐变可能导致的错误。 (它确实有一些自己的怪癖,但相比之下它们是次要的,很容易解决,并且在 CSS3Pie 网站上有很好的记录)。另一个好处是它允许您为所有浏览器(包括旧版 IE)使用标准 CSS 代码。大赢家。

哦,它还为 IE6-8 执行 border-radius,这对您来说是一个额外的好处。 (是的,它适用于渐变)

希望对您有所帮助。

关于html - 使用 IE 过滤器进行背景渐变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16058024/

相关文章:

javascript - Ckeditor 中的虚拟(重复)节点 [IE]

javascript - 如何防止 window.onbeforeunload 被 javascript : href links in IE? 触发

css - 溢出时保持div彼此相邻 float

jquery - 我第一次点击 jquery 移动页面会添加溢出 :hidden on body tag

javascript - 导航工具栏 HTML 使用 JS 更改字体大小和填充

html - 边距显示不正确

jquery - Hole li sort by one div with jquery

java - Wicket 人类可读的 URL

css - 嵌入式 WebBrowser 控件不遵守 @media max-width 属性

javascript - 单击鼠标选择所有 DIV 文本