¿Cómo usar CSS (y JavaScript?) Para crear un fondo borroso, "helado"?
Estoy tratando de crear un estilo glaseado estilo iOS 7 con HTML5, CSS3 y JavaScript que pueda funcionar en los navegadores webkit.
Técnicamente, dado el siguiente 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>
Me gustaría aplicar algo como un-webkit-filter: blur(5px)
a los primeros 20px horizontalmente de#main-view
.
Si el CSS fue modificado para ser#partial-overlay { width: 20px; height: 100%; ...}
entonces tendría que aplicar el-webkit-filter: blur(5px)
a los primeros 20px verticalmente.
La solución obvia es usar javascript para hacer un clon del#main-view
estableceroverflow: hidden
y luego cambie el ancho / alto según corresponda, pero me parece difícil generalizar a páginas / estructuras CSS más complejas.
¿Hay una mejor manera de lograr esto con un impacto de rendimiento mínimo y una capacidad de generalización máxima?
EDITAR: Aquí hay un ejemplo de lo que estoy tratando de lograr: