AFAIK, that's a CSS3 pseudo-class only. Also, 'visibility' only hides the content, not the space it takes up. 'display' hides the space too. :-)
This is for Internet Explorer:
h3 {
display: expression(this.innerHTML.length > 0 ? 'block' : 'none');
}
Basically, if there is content, there should...