仅使用CSS,是否可以使元素的背景半透明,但元素的内容(文本和图像)不透明?
我想在不将文本和背景作为两个独立元素的情况下完成这一点。
尝试时:
p型{位置:绝对;背景色:绿色;过滤器:alpha(不透明度=60);不透明度:0.6;}跨度{颜色:白色;过滤器:alpha(不透明度=100);不透明度:1;}<p><span>你好,世界</span></p>
看起来子元素受到其父元素的不透明度的影响,因此不透明度:1相对于父元素的不可见性:0.6。
仅使用CSS,是否可以使元素的背景半透明,但元素的内容(文本和图像)不透明?
我想在不将文本和背景作为两个独立元素的情况下完成这一点。
尝试时:
p型{位置:绝对;背景色:绿色;过滤器:alpha(不透明度=60);不透明度:0.6;}跨度{颜色:白色;过滤器:alpha(不透明度=100);不透明度:1;}<p><span>你好,世界</span></p>
看起来子元素受到其父元素的不透明度的影响,因此不透明度:1相对于父元素的不可见性:0.6。
当前回答
由于很多人会来到这里,想知道如何调整任何元素(而不仅仅是背景)的不透明度,所以只需在该元素的CSS中添加不透明度:0.2(或您希望的0到1之间的任何数字)即可。
实例
.myclass {
color: #eb4746;
opacity: 0.2;
}
这可以用于背景、标题、段落等。
其他回答
如果你是一个Photoshop爱好者,你也可以使用:
#some-element {
background-color: hsla(170, 50%, 45%, 0.9); // **0.9 is the opacity range from 0 - 1**
}
Or:
#some-element {
background-color: rgba(170, 190, 45, 0.9); // **0.9 is the opacity range from 0 - 1**
}
我是这样做的(这可能不是最佳的,但它有效):
创建要半透明的div。给它一个类/id。将其留空,然后将其关闭。为其设置高度和宽度(例如,300像素乘300像素)。给它一个0.5的不透明度或任何你喜欢的颜色,以及一个背景色。
然后,在该div的正下方,创建另一个具有不同类/id的div。在其中创建一个段落,在其中放置文本。给出div位置:relative,top:-295px(即负295像素)。给它一个z索引为2,以便于度量,并确保它的不透明度为1。根据您的喜好设置段落的样式,但要确保尺寸小于第一个div的尺寸,这样它就不会溢出。
就是这样。代码如下:
.反式{不透明度:0.5;高度:300px;宽度:300px;背景色:橙色;}.变速器2{不透明度:1;位置:相对;顶部:-295px;}.变速器2 p{宽度:295px;颜色:黑色;字号:粗体;}<body><div class=“trans”></div><div class=“trans2”><p>文本文本文本</p></div></body>
这在Safari2.x中有效,但我不了解Internet Explorer。
我认为这将为您提供所需的输出:
div {
width: 200px;
height: 200px;
display: block;
position: relative;
}
div::after {
content: "";
background: url(image.jpg);
opacity: 0.5;
top: 0;
left: 0;
bottom: 0;
right: 0;
position: absolute;
z-index: -1;
}
如果你使用的是Less,你可以使用褪色(颜色,30%)。
使用半透明PNG或SVG图像或使用CSS:
background-color: rgba(255, 0, 0, 0.5);
这是一篇来自css3.info、Opacity、RGBA和妥协(2007-06-03)的文章。
注意,一旦底层背景穿透,文本仍然需要与背景形成足够的对比。
<p style=“背景色:rgba(255,0,0,0.5);”><span>你好,世界</span></p>