Hey Neil,
As a CSS designer I would tell you to scrap the use of an image for a button. If you are going to use an image it is always good practice to use a tiled gradient so you can keep the file and load time down. If you have to use an image, and believe me I use them a lot my self, using a transparent GIF will work fine. You can get really decent effects if you use a good CSS code to complement it. Here is a CSS that I use to get the effect.
Code:
<style type="text/css">
<!--
/* This is the background image */
#bg {
width: 400px;
height: 300px;
background: url(yourimage.gif) repeat;
border: 2px solid black;
}
/* This is the transparent box */
#transbox {
width: 300px;
margin: 0 50px;
background-color: #fff;
border: 2px solid black;
filter:alpha(opacity=50);
opacity: 0.5;
-moz-opacity:0.5;
}
/* This is the container which set text to solid color.
position: relative used for IE */
#transbox div {
padding: 20px;
font-weight: bold;
color: #000;
filter:alpha(opacity=100);
opacity: 1;
-moz-opacity:1;
position: relative;
}
-->
</style>
Here is the HTML to bring it all together
Code:
<div id="bg">
<div id="transbox">
<div>50% Lorem ipsum dolor sit amet, consectetuer adipiscing etc. etc.</div>
</div>
</div>
This example will create a small 400 x 300 box with a transparent box over it including some text inside. Edit the code to suit your needs.
This should work in IE, Firefox, Safari, and Konqueror. You will notice that the transparency is declared 3 times so that it will work in all browsers.
Hope that helped