我希望div
拥有透明的背景
我尝试使用background-color
和opacity
执行此操作,但问题是边框和内部文本也变得透明。 Example here.
这可以在不使用透明PNG背景图像的情况下实现吗?
答案 0 :(得分:19)
如果您只想让背景颜色透明而不是儿童内容,请使用
background-color: rgba(0,0,0,.5); // Sets to 50% transparent
有关详细信息,请参阅此页面 - 这是css3规范,因此不会显示在每个浏览器中:
答案 1 :(得分:5)
是
设置
background-color: transparent;
并且不要使用opacity
,因为这是使整个div半透明的原因。
更新
您可以使用rgba作为背景颜色,如@DHuntrods所述。 IE需要对'课程进行一些调整.. http://leaverou.me/2009/02/bulletproof-cross-browser-rgba-backgrounds/
答案 2 :(得分:1)
最跨浏览器的解决方案是在另一个“绝对定位”子元素上使用opacity属性(在相对或绝对定位的父元素中):它只包含彩色透明背景
然后,您可以使用opacity
属性使此元素透明。由于此元素没有子元素,因此不透明度不会影响任何其他元素。
Opacity是一个IE5 +属性,只需使用(参见http://css-tricks.com/snippets/css/cross-browser-opacity/):
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)"; /* IE 8 */
filter: alpha(opacity=50); /* IE 5-7 */
-moz-opacity: 0.5; /* Netscape */
-khtml-opacity: 0.5; /* Safari 1.x */
opacity: 0.5; /* Good browsers */
请参阅jsFiddle示例http://jsfiddle.net/DUjzX/1/
HTML:
<div class="my-cool-wrapper">
<div class="text-and-images-on-top">
<p>Here some content (text AND images) "on top of the transparent background"</p>
<img src="http://i.imgur.com/LnnghmF.gif">
</div>
<div class="transparent-background">
</div>
</div>
CSS:
.my-cool-wrapper {
position: relative;
}
.my-cool-wrapper .text-and-images-on-top {
padding: 10px 15px 19px 15px;
z-index: 1;
position: relative; /* needed to enable the z-index */
}
.my-cool-wrapper .transparent-background {
position: absolute;
top: 0;
width: 100%;
height: 100%;
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=10)"; /* IE 8 */
filter: alpha(opacity=10); /* IE 5-7 */
-moz-opacity: 0.1; /* Netscape */
-khtml-opacity: 0.1; /* Safari 1.x */
opacity: 0.1; /* Good browsers */
background-color: blue;
}
了解更多: Set opacity of background image without affecting child elements
屏幕截图样张
ps:我没有为Chrome,Firefox和&添加屏幕截图Safari因为它们是“更好”的浏览器......相信我,它也适用于它们。
答案 3 :(得分:0)
我不得不使用30x30透明gif作为背景。
background:url('absolute path here');