将div背景的不透明度设置为透明而不更改文本

时间:2016-05-07 21:05:35

标签: html css ionic-framework

如何设置div背景的不透明度而不影响hero-text中的文字?现在hero-text继承了ion-slide的不透明度。

<style>
.slider {
    height: 100%;
    width: 100%;
}
.slide {
    background-size: cover; 
}
#one { 
    background: url(img/walkthrough-1.png) no-repeat;
    opacity: 0.5;
}
#two {
    background: url(img/walkthrough-2.png) no-repeat;   
}
#three {
    background: url(img/walkthrough-3.png) no-repeat; 
}
.splash {
    bottom: 0px;
}
.hero-text {
}
</style>

<ion-content class="splash" scroll="false">
    <ion-slide-box on-slide-changed="slideHasChanged($index)">
        <ion-slide id="one"><div class="hero-text">Test</div></ion-slide>
    </ion-slide-box>
</ion-content>

1 个答案:

答案 0 :(得分:1)

如果您只需要调整<ion slide id="xxx">的不透明度,那么我建议您打破.hero-text div并根据需要调整样式以保持设计正确。

使用CSS,您可以调整背景颜色的不透明度 - background-color: rgba(0, 0, 0, 0.5) - 这将创建50%不透明的黑色背景颜色,并且不会影响任何子元素。但是如果你想减少背景图像的不透明度,那么你唯一的方法是使用opacity,这当然会影响孩子。

我在同样使用“英雄形象”的网站上使用了相同的概念,我希望背景图像淡入/淡出而不影响任何文本。您可能需要使用以下CSS来正确放置所有内容:

.hero-wrapper {
  position: relative;
}

.hero-wrapper > .bg {
  background: ...;
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  z-index: 0;
}

.hero-wrapper > .text {
  position: relative;
  z-index: 10;
}

这应该有效,尽管它是徒手的。如果您希望我再解释一下或提供一个有效的例子,请告诉我。干杯〜

修改

这是我通过Plnkr推荐的一个工作示例:) Plnkr Demo