【问题标题】:Can't override the opacity value?不能覆盖不透明度值?
【发布时间】:2013-08-28 19:26:46
【问题描述】:

我有一个固定的div 覆盖(整个屏幕),其中包含另一个较小的居中div 用于消息。

大 div 有position:fixed 和不透明度。

内部 div 也有 position:fixed 但没有不透明度

但在内部 div ,我不想有任何透明度。(opacity: 1):

问题:

我仍然认为它是透明的。我该如何修复它(内部 div)?

内部 div 背景颜色为黑色。颜色是红色的。并且(如您所见)这不是正在发生的事情。 (我也试过!重要)

Full JSBIN

注意

overlay div和inner div在用户滚动时不应该滚动。

【问题讨论】:

  • 使用RGBA作为背景色而不是opacity:jsbin.com/icuXOrI/4/edit
  • @MarcinJuraszek 工作。谢谢。 (附:有什么区别?)请作为答案发布。
  • 一旦你设置了不透明度,所有子元素的不透明度将只在0到外部元素不透明度的范围内。因此,如果您在外部元素上设置 0.5,在内部元素上设置 1,则内部元素的最终结果将是 0.5。或者内部的 0.5 会导致 0.25 的不透明度。
  • @Yoshi 非常合理。谢谢!

标签: html css opacity


【解决方案1】:

只需将不透明的 div 放在不透明的 div 之外。

http://jsbin.com/icuXOrI/11/edit?html,js,output

它有position:fixed,所以不管你把它放在哪里。

【讨论】:

  • 谁有职位:绝对的?
  • 但是如果我想隐藏 div+overlay ,我需要隐藏 2 个元素而不是 1 个。
  • 您可以添加第 3 个 div 以包含其他 2 个,然后显示/隐藏那个。
【解决方案2】:

保留两个不同的 div,一个不透明度较低,另一个不透明度。

<div parent>
    <div with opacity></div>
    <div without opacity></div>
</div>

JSBIN

【讨论】:

    【解决方案3】:

    您可以使用background-color: rgba(0,0,0,0.5) 使背景颜色透明

    【讨论】:

    • 我实际上更喜欢这种方法而不是dragoste,因为HTML结构非常重要(imo),如果你可以在保持良好结构的同时做到这一点,那么就这样做
    猜你喜欢
    • 2013-01-27
    • 2016-09-28
    • 1970-01-01
    • 2012-09-06
    • 2011-09-27
    • 2012-07-10
    • 1970-01-01
    • 2013-02-25
    • 2022-06-11
    相关资源
    最近更新 更多