I'm not using CSS3. So I can't use opacity
or filter
attributes. Without using these attributes how can I make the background-color
transparent of a div
? It should be kind of the text box example in this link. Here the text box background color is transparent. I want to make the same, but without using the above mentioned attributes.
-
3Neither `opacity` nor `filter` are CSS 3 attributes. Why do you think you can not use them? – Pekka Aug 04 '12 at 08:58
-
I don't know, in my Eclipse Juno both the attributes are not shown and as per W3School: **Note: The CSS opacity property is a part of the W3C CSS3 recommendation.** See [here](http://www.w3schools.com/css/css_image_transparency.asp) – Mistu4u Aug 04 '12 at 09:02
-
And My eclipse does not support (most probably) CSS3!! :( – Mistu4u Aug 04 '12 at 09:04
-
1I'd say you can ignore those messages. Some attributes are outside the specs but still usable in the real world. A combination of `opacity`, `filter` and some other attributes as shown here: http://css-tricks.com/css-transparency-settings-for-all-broswers/ will cover pretty much every browser there is – Pekka Aug 04 '12 at 09:06
-
1possible duplicate of [CSS opacity only to background color not the text on it?](http://stackoverflow.com/questions/5135019/css-opacity-only-to-background-color-not-the-text-on-it) – Dave Jarvis Nov 18 '13 at 02:53
-
`opacity` is NOT a CSS3 property. You can achieve what you want on all browser (IE5+, Chrome, Firefox, Safari, & so on) using this technique http://stackoverflow.com/a/21984546/759452 – Adriano Feb 24 '14 at 11:29
-
1possible duplicate of [Transparent background, but not the content (text & images) inside it, in CSS only?](http://stackoverflow.com/questions/806000/transparent-background-but-not-the-content-text-images-inside-it-in-css-on) – Adriano Feb 27 '14 at 08:25
7 Answers
The problem with opacity
is that it will also affect the content, when often you do not want this to happen.
If you just want your element to be transparent, it's really as easy as :
background-color: transparent;
But if you want it to be in colors, you can use:
background-color: rgba(255, 0, 0, 0.4);
Or define a background image (1px
by 1px
) saved with the right alpha
.
(To do so, use Gimp
, Paint.Net
or any other image software that allows you to do that.
Just create a new image, delete the background and put a semi-transparent color in it, then save it in png.)
As said by René, the best thing to do would be to mix both, with the rgba
first and the 1px
by 1px
image as a fallback if the browser doesn't support alpha :
background: url('img/red_transparent_background.png');
background: rgba(255, 0, 0, 0.4);
See also : http://www.w3schools.com/cssref/css_colors_legal.asp.
Demo : My JSFiddle

- 11,722
- 4
- 35
- 54
-
3Also typed as comment at other answer. The nicest thing would be using rgba coloring and the described png in this answer as fallback. – René Aug 04 '12 at 09:24
-
3Wickedness on the simplicity of using 'transparent' on the background-color attribute. Mega kudos! – tfont Nov 18 '15 at 10:39
Opacity gives you translucency or transparency. See an example 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 */
Note: these are NOT CSS3 properties
See http://css-tricks.com/snippets/css/cross-browser-opacity/

- 19,463
- 19
- 103
- 140

- 24,238
- 8
- 76
- 113
-
2
-
4@Jerska that is a premise that needs questioning though. His only reason not to use those attributes seems to be that his IDE is complaining about them – Pekka Aug 04 '12 at 09:05
-
-
@Subir if you need another way, see Jerska's answer. But as said, it seems questionable why you want to avoid `opacity` in the first place. – Pekka Aug 04 '12 at 09:07
-
Like you rightly understood my IDE is not supporting them and one more word in the same link you shared please follow the **NOTE** in the top. It says **The CSS opacity property is a part of the W3C CSS3 recommendation**. – Mistu4u Aug 04 '12 at 09:09
-
@SubirAdhikari. You are right that it is part of the CSS3 specification, but it has been available in most browsers for years. It works in none-CSS browsers. Don't get too hung up on CSS3. – Paul Fleming Aug 04 '12 at 09:12
-
14Poster wanted an opaque background, not an opaque element. Text in the element will also be opaque using the opacity method. This answer is not complete enough to provide that. Using rgba with a fallback png would be much better. – René Aug 04 '12 at 09:19
-
for cross-browser opacity: http://css-tricks.com/snippets/css/cross-browser-opacity/ – Adriano Feb 24 '14 at 11:30
-
@RenéGeuze: this technique uses opacity, hence is compatible with IE5+, Firefox, Chrome, & Safari http://stackoverflow.com/a/21984546/759452 . I really like the rgba technique but it does not work on IE8 & I am not not sure about IE9 either. – Adriano Feb 24 '14 at 11:32
transparent is the default for background-color

- 1,213
- 3
- 14
- 22
-
Yes. According to the [MDN spec on backgorund-color](https://developer.mozilla.org/en-US/docs/Web/CSS/background-color), the initial value of backgorund-color is transparent, and it is not an inherited property. So, the default is transparent. – Dan Cron Oct 30 '15 at 15:20
From https://developer.mozilla.org/en-US/docs/Web/CSS/background-color
To set 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 */

- 16,873
- 13
- 49
- 72
It might be a little late to the discussion but inevitably someone will stumble onto this post like I did. I found the answer I was looking for and thought I'd post my own take on it. The following JSfiddle includes how to layer .PNG's with transparency. Jerska's mention of the transparency attribute for the div's CSS was the solution: 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' });
});
And my original inspiration:http://jsfiddle.net/5g1zwLe3/ I also used paint.net for creating the transparent PNG's, or rather the PNG's with transparent BG's.

- 71
- 10
Use something like
<div style='background-color: rgba(0, 0, 0, 0.4);'>
This sets the background color of said div to black, but also 40% transparent. This will not change the text or content of the divs' transparency.

- 3,388
- 1
- 25
- 35
/*Fully Opaque*/
.class-name {
opacity:1.0;
}
/*Translucent*/
.class-name {
opacity:0.5;
}
/*Transparent*/
.class-name {
opacity:0;
}
/*or you can use a transparent rgba value like this*/
.class-name{
background-color: rgba(255, 242, 0, 0.7);
}
/*Note - Opacity value can be anything between 0 to 1;
Eg(0.1,0.8)etc */

- 45
- 2
-
Please provide some explanation for your answer and avoid posting code only answers. – Saeed Zhiany Nov 12 '19 at 06:56