Transparent text over images
I needed recently to overlap, on a web page, a text on an image, and the text was to be white, with a black background, with alpha. For this, the solution is to make two DIVs, both positioned in a container div. The container div has to have “position: relative”. The second div has to have “position: absolute”, and to set “top” and “left” properties so that it would be positioned where you want.
So, to wrap things up:
– container div:
#container { position: relative; }
– image div (or just image tag) – has nothing special, maybe remove its borders…
#container img { border: 0; }
– text div (or a special tag, like “h2”)
#container h2 { display: block; position: absolute; top: 10px; left: 0; width: 100px; height: 30px; color: white; background: rgb(0, 0, 0); /* fallback color */ background: rgba(0, 0, 0, 0.15); } #IEroot #container h2 { background:transparent; filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#40000000,endColorstr=#40000000); zoom: 1; }
For IE compatibility, you need to use conditional statements. This is done by adding this code before the container div:
<!--[if IE]> <div id="IEroot"> <![endif]-->
and this code after the container div:
<!--[if IE]> </div> <![endif]-->
Leave a Reply