当前位置: 首页 > 知识库问答 >
问题:

我可以设置一个不透明度仅为一个div的背景图像吗?

淳于健
2023-03-14

假设我有

<div class="myDiv">Hi there</div>

我想放一个背景图像并给它一个不透明度0.5-但我想要我写的文本有完全的不透明度(1)。

如果我像这样编写CSS

.myDiv { opacity:0.5 }

所有的东西都是低透明度的--我不想那样。

所以我的问题是--我怎样才能获得低不透明度背景图像与全不透明度文本?

共有1个答案

贝滨海
2023-03-14

不,这是做不到的,因为opacity会影响整个元素,包括其内容,而且没有办法改变这个行为。您可以使用以下两种方法来解决这一问题。

向容器中添加另一个div元素以保存后台。这是最跨浏览器友好的方法,即使在IE6上也会起作用。

HTML

<div class="myDiv">
    <div class="bg"></div>
    Hi there
</div>

CSS

.myDiv {
    position: relative;
    z-index: 1;
}

.myDiv .bg {
    position: absolute;
    z-index: -1;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    background: url(test.jpg) center center;
    opacity: .4;
    width: 100%;
    height: 100%;
}

请参阅jsFiddle上的测试用例

另一个技巧是使用CSS 2.1:before或CSS 3::before伪元素。从版本8开始的IE支持:Before伪元素,而根本不支持::Before伪元素。这有望在第10版中得到纠正。

HTML

<div class="myDiv">
    Hi there
</div>

CSS

.myDiv {
    position: relative;
    z-index: 1;
}

.myDiv:before {
    content: "";
    position: absolute;
    z-index: -1;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    background: url(test.jpg) center center;
    opacity: .4;
}

由于z-index的行为,您必须为容器设置z索引,并为背景图像设置负的z-index

请参阅JSFiddle上的测试用例:

  • 使用CSS 2.1:之前
  • 使用CSS 3::before
 类似资料:
  • 问题内容: 假设我有 我想提出一个并给它一个的-但我想,我写的文字将有充分的不透明度()。 如果我这样写CSS 一切 都会变得不透明-我不想要那样。 所以我的问题是–如何获得带有完全不透明度文本的低不透明度背景图像? 问题答案: 不,这无法完成,因为会影响整个元素(包括其内容),并且无法更改此行为。您可以使用以下两种方法解决此问题。 Secondary div 将另一个元素添加到容器中以保留背景。

  • 问题内容: 我可以在CSS参考中看到如何设置图像透明度以及如何设置背景图像。但是,如何将这两者结合以设置透明的背景图像? 我有一张要用作背景的图像,但是它太亮了-我想将不透明度降低到约0.2。我怎样才能做到这一点? 问题答案: 两种方法: 转换为PNG并使原始图像0.2不透明 (更好的方法)有一个是前和相同的高度,然后应用背景图像和。

  • 我有一个带有文本块的div元素和一个父div,我在其中设置了一个背景图像。现在我想降低背景图像的不透明度。请建议我怎么做。 提前谢谢。 编辑: 我希望通过编辑 html 内容来改变我的博客文章看待 blogger.com 的方式。html 代码如下所示: 我试图用 div 元素包围上面的整个代码,并分别设置每个 div 的不透明度,如下所示: 但它不起作用。

  • 我有一些PNG图像,由黑色形状和透明背景组成。不幸的是,IrfanView将透明背景显示为黑色,所以我只能在黑色上看到黑色。我在Irfan设置中发现,我可以更改窗口的背景色,但它只会更改图像周围的颜色,透明的颜色仍然是黑色。 有没有办法改变显示为透明的颜色,或者最好使用Photoshop之类的白灰色方块?

  • 问题内容: some stuff, images etc 我想要的是让.container div具有80%的不透明度,但是.site_content的内容为100% 设置CSS不透明度会影响所有子元素。有办法吗?使用jQuery吗? 由于此方法的使用方式,我宁愿避免在后面放置另一个透明div来获得效果的技术。 问题答案: 您需要在容器div上使用RGBA背景属性。。64、64、64是RGB颜色值

  • 本文向大家介绍使用CSS设置背景色的不透明度,包括了使用CSS设置背景色的不透明度的使用技巧和注意事项,需要的朋友参考一下 要设置背景色的不透明度,请使用不透明度属性和RGBA颜色值。 示例 您可以尝试运行以下代码来实现opacity属性: