【发布时间】:2011-02-14 22:59:08
【问题描述】:
我在我的 CSS 中使用 Internet Explorer 渐变过滤器。
一切都很顺利,直到我注意到应该超出其容器overflow:visible; 的图像被剪裁,就好像容器设置为overflow:hidden;
我不知道为什么会发生这种情况,也不知道如何解决。有人可以帮忙吗?
我在 IE8 和 IE7 中查看
这是导致问题的css,当我将其注释掉时,不再有错误:
.box{
filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#b4cfe9', endColorstr='#e4eefc'); /* IE6 & IE7 */
-ms-filter: "progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#b4cfe9', endColorstr='#e4eefc')"; /* IE8 */
}
【问题讨论】:
-
一些源代码和一个活生生的例子会很有用:)
-
没有活生生的例子,我通过将渐变应用到一个额外的绝对定位的 div 来破解一个解决方案,该 div 与我最初想要着色的父 div 具有相同的高度和宽度。我仍然很好奇为什么会出现这个问题,以便我可以修复它并避免将来出现多余的标记。
-
尝试查看satzansatz.de/cssd/onhavinglayout.html#filter 和链接的satzansatz.de/cssd/tmp/alphatransparency.html - 他们可能(或可能不会)回答您的问题,但IE 的
hasLayout往往在这些类型的问题中发挥核心作用,也许是强制剪辑内容? -
这实际上看起来像是值得研究的东西。谢谢大卫。
-
这是一个例子:jsfiddle.net/thugsb/ZcT8G/2 似乎只发生在 ie7 中,ie6 根本无法渲染渐变。
标签: css internet-explorer cross-browser overflow gradient