2012-08-04 50 views
149

我没有使用CSS3。所以我不能使用opacityfilter属性。没有使用这些属性,我怎样才能让background-color透明的div?它应该是这种link中的文本框示例。这里文本框的背景颜色是透明的。我想要做同样的事情,但不使用上面提到的属性。如何在CSS中使div背景颜色透明

+3

无论'opacity'也​​不'filter'是CSS 3点的属性。你为什么认为你不能使用它们? – 2012-08-04 08:58:58

+0

我不知道,在我的Eclipse Juno中,这两个属性都没有显示,并且按照W3School的说明:**注意:CSS不透明属性是W3C CSS3建议的一部分**请参见[here](http:// www.w3schools.com/css/css_image_transparency.asp) – Mistu4u 2012-08-04 09:02:32

+0

而我的eclipse不支持(最可能)CSS3! :( – Mistu4u 2012-08-04 09:04:03

回答

116

不透明度为您提供了半透明或透明。请参阅示例Fiddle here

-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 */ 

注:these are NOT CSS3 properties

http://css-tricks.com/snippets/css/cross-browser-opacity/

+0

“所以我不能使用不透明度或过滤器属性” – Jerska 2012-08-04 09:04:32

+2

@Jerska出于错误的原因。 – 2012-08-04 09:05:15

+4

@Jerska虽然需要质疑的前提。他唯一不使用这些属性的原因似乎是他的IDE在抱怨他们 – 2012-08-04 09:05:16

287

opacity的问题在于,它也会影响内容,常常不希望发生这种情况。

如果你只是想你的元素是透明的,它真的那么容易,因为:

background-color: transparent; 

但是,如果你希望它是在颜色,你可以使用:

background-color: rgba(255, 0, 0, 0.4); 

或定义一张背景图片(1px1px)保存,右侧为alpha
(要做到这一点,使用GimpPaint.Net或任何其他图像处理软件,可以让你做到这一点。
只需创建一个新的形象,删除背景,把一个半透明的颜色,然后将其保存为PNG。 )

至于说通过René,做的最好的事情对双方都是混合,用rgba第一和1px通过1px图像作为后备,如果浏览器不支持Alpha:

background: url('img/red_transparent_background.png'); 
background: rgba(255, 0, 0, 0.4); 

另请参阅http://www.w3schools.com/cssref/css_colors_legal.asp

演示My JSFiddle

+3

还在其他答案中输入了评论。最好的事情是在这个答案中使用rgba着色和描述的png作为后备。 – 2012-08-04 09:24:19

+1

在背景颜色属性上使用'透明'的简单性的邪恶。巨大的荣誉! – tfont 2015-11-18 10:39:45

10
+0

是的。根据[backgorund-color]的MDN规范(https://developer.mozilla.org/en-US/docs/Web/CSS/background-color),backgorund-color的初始值是透明的,它是不是继承的财产。所以,默认是透明的。 – 2015-10-30 15:20:47

+0

这应该是被接受的答案。 – 2016-12-05 21:37:58

2

这可能是一个有点晚了讨论b不可避免地会有人像我一样偶然发现这篇文章。我找到了我正在寻找的答案,并认为我会发表自己的看法。 以下JSfiddle包括如何使用透明度对.PNG进行分层。对于div的CSS透明度属性的Jerska的提到的是解决办法: http://jsfiddle.net/jyef3fqr/

HTML:

<button id="toggle-box">toggle</button> 
    <div id="box" style="display:none;" ><img src="x"></div> 
    <button id="toggle-box2">toggle</button> 
    <div id="box2" style="display:none;"><img src="xx"></div> 
    <button id="toggle-box3">toggle</button> 
    <div id="box3" style="display:none;" ><img src="xxx"></div> 

CSS:

#box { 
background-color: #ffffff; 
height:400px; 
width: 1200px; 
position: absolute; 
top:30px; 
z-index:1; 
} 
#box2 { 
background-color: #ffffff; 
height:400px; 
width: 1200px; 
position: absolute; 
top:30px; 
z-index:2; 
background-color : transparent; 
     } 
     #box3 { 
background-color: #ffffff; 
height:400px; 
width: 1200px; 
position: absolute; 
top:30px; 
z-index:2; 
background-color : transparent; 
     } 
body {background-color:#c0c0c0; } 

JS:

$('#toggle-box').click().toggle(function() { 
$('#box').animate({ width: 'show' }); 
}, function() { 
$('#box').animate({ width: 'hide' }); 
}); 

$('#toggle-box2').click().toggle(function() { 
$('#box2').animate({ width: 'show' }); 
}, function() { 
$('#box2').animate({ width: 'hide' }); 
}); 
$('#toggle-box3').click().toggle(function() { 
$('#box3').animate({ width: 'show' }); 
}, function() { 
$('#box3').animate({ width: 'hide' }); 
}); 

而且我原来的灵感:http://jsfiddle.net/5g1zwLe3/ 我也用paint.net来创建透明的PNG,或者用透明的BG来创建PNG。

1

https://developer.mozilla.org/en-US/docs/Web/CSS/background-color

要设置背景色:

/* Hexadecimal value with color and 100% transparency*/ 
background-color: #11ffee00; /* Fully transparent */ 

/* Special keyword values */ 
background-color: transparent; 

/* HSL value with color and 100% transparency*/ 
background-color: hsla(50, 33%, 25%, 1.00); /* 100% transparent */ 

/* RGB value with color and 100% transparency*/ 
background-color: rgba(117, 190, 218, 1.0); /* 100% transparent */