Cross Broswer CSS Classes to Show/Hide Elements

Sam Deering
Share

Transparency is one of those CSS properties that has a weird history and requires lots of different properties and values to ensure cross browser transparency compatibility that goes back as far as you can. To cover all your bases, you need a bunch of CSS statements. Fortunately they don’t interfere with each other, so using them all every time you wish to add transparency is no big hassle and worry-free. Here they are, and are currently set to 50% transparency:

CSS Only Show Elements

/* CSS Class to show elements */

.show {

/* Required for IE 5, 6, 7 */
/* ...or something to trigger hasLayout, like zoom: 1; */
width: 100%;

/* Theoretically for IE 8 & 9 (more valid) */
/* ...but not required as filter works too */
/* should come BEFORE filter */
-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";

/* This works in IE 8 & 9 too */
/* ... but also 5, 6, 7 */
filter: alpha(opacity=100);

/* Older than Firefox 1.0 */
-moz-opacity:1.0;

/* Safari 1.x (pre WebKit!) */
-khtml-opacity: 1.0;

/* Modern!
/* Firefox 0.9+, Safari 2?, Chrome any?
/* Opera 9+, IE 9+ */
opacity: 1.0;

}

CSS Only Hide Elements

/* CSS Class to hide elements */

.hide {

/* Required for IE 5, 6, 7 */
/* ...or something to trigger hasLayout, like zoom: 1; */
width: 0%;

/* Theoretically for IE 8 & 9 (more valid) */
/* ...but not required as filter works too */
/* should come BEFORE filter */
-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";

/* This works in IE 8 & 9 too */
/* ... but also 5, 6, 7 */
filter: alpha(opacity=0);

/* Older than Firefox 1.0 */
-moz-opacity:0;

/* Safari 1.x (pre WebKit!) */
-khtml-opacity: 0;

/* Modern!
/* Firefox 0.9+, Safari 2?, Chrome any?
/* Opera 9+, IE 9+ */
opacity: 0;

}

CSS Function Demo