【问题标题】:CSS Opacity PropertyCSS 不透明度属性
【发布时间】:2013-07-11 22:07:12
【问题描述】:

嗨,我正在为 div 标签使用 CSS Opacity 属性,它运行良好,但问题是当我在该 div 标签上写一些文本或粘贴图像时,它们也会变淡。我只需要让 div 的背景颜色褪色,而不是 div 的内容。我的代码是...

#fade div
{
opacity:0.1;
filter:alpha(opacity=10); /* For IE8 and earlier */
width:750px;
height:150px;
background-color:#FFFFFF;
}

#text in fade div
{
font-weight:bold;
color:#8A2BE2;
}

谢谢你!!!

【问题讨论】:

  • 您可以使用 CSS3 还是需要尽可能广泛地查看?
  • 如果您将文本/图像放在该 div 中,则该 div 成为该 div 的父级,并且它包含父级的属性,以便了解问题创建 jsfiddle

标签: html css


【解决方案1】:

使用rgba() 或透明PNG 作为背景要容易得多。

rgba(0, 0, 0, .1);
rgba(0, 0, 0); //fallback

【讨论】:

【解决方案2】:

您可以为此使用rgba() 属性:

这样写:

#fade div
{
background-color: rgba(0,0,0,0.1);
width:750px;
height:150px;
background-color:#FFFFFF;
}

对于 IE 你可以使用IE filter

background: transparent;-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#19000000,endColorstr=#19000000)"; /* IE8 */    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#19000000,endColorstr=#19000000);   /* IE6 & 7 */      zoom: 1;

您可以从这里生成您的过滤器http://kimili.com/journal/rgba-hsla-css-generator-for-internet-explorer/

【讨论】:

  • 是的,但不应该像background-color: rgba(0,0,0,0.1);
  • ie 过滤器不能以这种方式工作#header { width:750px;高度:150px;背景颜色:#333333;背景颜色:rgba(0,0,0,0.1); }
  • 可能是 background-color:#333333; 的问题。可能你必须删除它。
【解决方案3】:

只需使用 1px 半透明 gif 并按 x 和 y 重复。据我所知,这是设置半透明背景的最简单方法。

【讨论】:

    【解决方案4】:

    当然,不透明度也适用于子元素。您可以做的是隔离您的标记。

    <div id='Div-With-Opacity-set'>
    </div>
    <div id='Child-Elements-for-the-above-div'>
    </div>
    

    仔细对齐您的标记,使标记与您想要的相似。

    【讨论】:

      【解决方案5】:

      那你为什么不重新设置不透明度呢?

      #text in fade div
      {
          font-weight:bold;
          color:#8A2BE2;
          opacity:1;
          filter:alpha(opacity=100); /* For IE8 and earlier */
      }
      

      【讨论】:

      • 这不起作用。 opacity 无论如何都不是继承属性。
      【解决方案6】:

      不使用 CSS3 的最佳选择可能是创建一个 div 并将另一个 div 放在它上面,但不要嵌套在其中。不透明度过滤到具有不透明度集的元素内的所有元素。

      如果你把一个 div 放在右边,然后给它一个 -750px 的边距,你可以给它一个不透明度 1,但是它后面的 div 可以有一个 0.1 的不透明度,这样可以正常工作.

      使用 CSS3,您可以这样做:

      #fade 
      {
      width:750px;
      height:150px;
      background-color: rgba(255,255,255,0.1);
      }
      

      只有背景的不透明度为 0.1。文本仍为 1。

      不过,我个人最常做的是创建一个带有我想要的透明背景的小 .png,然后将该 .png 设置为元素的背景。在 Photoshop 中,我可以将白色背景的不透明度设置为 0.1,然后保存一个 50X50 的正方形,然后我就获得了近乎完美的透明度(没有 IE6)。

      【讨论】:

        【解决方案7】:

        你需要像http://jsfiddle.net/PWM5f/这样的东西

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-03-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-01-29
          • 1970-01-01
          • 2015-03-31
          • 2012-02-11
          相关资源
          最近更新 更多