Com css é o máximo que você vai conseguir fazer. Tem que usar javascript.
overlay = {
add : function(){
var c = overlay.getSize();
var o = document.createElement("div");
o.setAttribute("id", "overlay");
document.body.appendChild(o);
var el = document.getElementsByTagName('select');
for(x=0,y=el.length;x<y;x++){
_s(el[x],'visibility','hidden');
}
var el = $('overlay');
el.className = "overlay";
el.style.height = c.b+'px';
},
remove : function(){
document.body.removeChild($('overlay'));
var el = document.getElementsByTagName('select');
for(x=0,y=el.length;x<y;x++){
_s(el[x],'visibility','visible');
}
},
getSize : function(){
var w = document.body.clientWidth || innerWidth;
var h = document.body.clientHeight || innerHeight;
var a = window.scrollMaxX || 0;
var b = window.scrollMaxY || 0;
return {a:w,b:h+b}
}
}
Eu fiz essa classe pra usar em um site. Não é difícil implementar, mas eu estou sem tempo agora. Tente fazer ae, qq coisa poste se tiver dúvidas. Você chama a classe assim
overlay.add();
... e precisa criar uma classe chamada overlay com a transparência que você quiser.
PS: Precisa dessas 2 funções tbm:
/* $();
* Return a reference to the element
* Usage: var el = $('id');
*/
function $(w){
return document.getElementById(w);
}
/* _s();
* Change the inline style of an element
* Usage: _s($('id'),'color','#f00');
*/
function _s(obj,p,v){
obj.style[p] = v;
}