【问题标题】:Foreground transparency in IE8IE8中的前景透明度
【发布时间】:2013-06-02 18:21:36
【问题描述】:

我正在尝试让透明度在 IE8 中工作。我见过的所有解决方案都是针对背景颜色的,但我正试图让它为前景颜色工作。

我想在 IE8 中获得这种效果(颜色是用户生成的,因此无法使用近似的混合颜色解决方案,因为这些不是目标颜色)

HTML:

<div>testing</div>
<span>testing</span>

CSS:

div {
    color: rgba(255, 0, 0, .5);
}
span {
    color: red
}
body {
    background: green;
}

http://jsfiddle.net/6L2DZ/

【问题讨论】:

    标签: javascript html css internet-explorer-8 opacity


    【解决方案1】:

    在 IE8 中的 CSS 中没有本地方式来执行此操作。 IE8 不支持 CSS rgba 颜色。故事结束。

    实现这一点的唯一方法是使用 polyfill 脚本,而我所知道的唯一可以在 IE8 中执行 rgba 颜色的 polyfill 脚本是 CSS3Pie

    使用 CSS3Pie 将在某些情况下添加对 rgba 颜色的支持,但支持文本颜色。它适用于背景色和渐变色,但不适用于文本。

    因此,我不认为您正在寻找的东西实际上可以按照您想要的方式完成。

    通过将文本放入单独的元素并为该元素设置不透明度,您可能会取得一些成功。由于元素中唯一的东西是您的文本,因此它会产生类似的效果,就好像您使用 rgba 为文本赋予了透明效果。这并不理想,但这是我能想到的唯一可行的解​​决方案。

    【讨论】:

      【解决方案2】:

      我遵循了这里所说的:http://robertnyman.com/2010/01/11/css-background-transparency-without-affecting-child-elements-through-rgba-and-filters/

      当我需要做类似的事情时确实工作了:D

      【讨论】:

        【解决方案3】:

        试试这个:filter: alpha(opacity=75);

        或者这个:Opacity CSS not working in IE8

        【讨论】:

        • 这将导致 IE9 中的文本双重透明。你也可以添加-ms-filter:'none';来抵消它,让它在IE9中运行。
        猜你喜欢
        • 1970-01-01
        • 2011-11-26
        • 2013-09-02
        • 1970-01-01
        • 2013-04-20
        • 2011-10-17
        • 2012-12-05
        • 2023-03-31
        • 2010-11-18
        相关资源
        最近更新 更多