Como usar CSS (e JavaScript?) Para criar um fundo desfocado e "fosco"?
Eu estou tentando criar uma aparência fosca estilo iOS 7 com HTML5, CSS3 e JavaScript, que pode funcionar em navegadores webkit.
Tecnicamente, dado o seguinte HTML:
<style>
#partial-overlay {
width: 100%;
height: 20px;
background: rgba(255, 255, 255, .2); /* TODO frost */
position: fixed;
top: 0;
left: 0;
}
</style>
<div id="main-view">
<div style="width: 50px; height: 50px; background: #f00"></div>
To my left is a red box<br>
Now there is just text<br>
Text that goes on for a few pixels <br>
or even more
</div>
<div id="partial-overlay">
Here is some content
</div>
Eu gostaria de aplicar algo como um-webkit-filter: blur(5px)
para o primeiro 20px na horizontal de#main-view
.
Se o CSS foi modificado para ser#partial-overlay { width: 20px; height: 100%; ...}
então eu preciso aplicar o-webkit-filter: blur(5px)
para o primeiro 20px verticalmente.
A solução óbvia é usar o javascript para fazer um clone do#main-view
conjuntooverflow: hidden
e, em seguida, altere a largura / altura conforme apropriado, mas isso me parece difícil de generalizar para estruturas de páginas / CSS mais complexas.
Existe uma maneira melhor de conseguir isso com o mínimo de desempenho e generalização máxima?
EDITAR: Aqui está um exemplo do que estou tentando alcançar: