html - fondo - Cómo desenfocar(css) div sin desenfocar elemento hijo
efecto cristal css (3)
<div class="row">
<div class="col-lg-3">
<button class="btn">
button
</button>
</div>
.col-lg-3{
background-color:#8CD6EB;
-webkit-filter: blur(3px);
-moz-filter: blur(3px);
-o-filter: blur(3px);
-ms-filter: blur(3px);
filter: blur(3px);
}
Si no quiero desenfocar el botón, ¿qué debo hacer?
¿Cómo deshabilitar el desenfoque en el elemento hijo?
.enableBlur>* {
filter: blur(1.2px);
}
.disableBlur {
filter: blur(0);
}
<div class="enableBlur">
<hr>
qqqqq<br>
<span>qqqqq</span><br>
<hr class="disableBlur">
<div>aaaaa</div>
<div>bbbbb</div>
<div class="disableBlur">DDDDD</div>
<hr>
<img src="https://lh5.googleusercontent.com/-n8FG4f09-ug/AAAAAAAAAAI/AAAAAAAACmA/ldtxmWX1SyY/photo.jpg?sz=48">
<img class="disableBlur" src="https://lh5.googleusercontent.com/-n8FG4f09-ug/AAAAAAAAAAI/AAAAAAAACmA/ldtxmWX1SyY/photo.jpg?sz=48">
</div>
Cuando se utiliza la propiedad de
blur
u
opacity
, no es posible ignorar el elemento secundario.
Si aplica cualquiera de esas propiedades al elemento primario, también se aplicará automáticamente a los elementos secundarios.
Hay una solución alternativa: cree dos elementos dentro de su
div
principal: uno para el fondo y otro para el contenido.
Establecer
position:relative
en el
div
padre y establecer
position:absolute; top:0px; right:0px; bottom:0px; left:0px;
position:absolute; top:0px; right:0px; bottom:0px; left:0px;
(o establezca la altura / anchura al 100%) en el elemento secundario para el fondo.
Con este método, el contenido
div
no se verá afectado por las propiedades en segundo plano.
Ejemplo:
<div id="parent_div" style="position:relative;height:100px;width:100px;">
<div id="background" style="position:absolute;top:0;left:0;right:0;bottom:0;background-color:red;filter: blur(3px);z-index:-1;"></div>
<div id="textarea">My Text</div>
</div>
Si ve el fondo enmascarando sobre el contenido, utilice
la propiedad del
z-index
para enviar el fondo detrás del segundo
div
contenido.
Simplemente cree dos divisiones y ajuste sus índices z y márgenes de modo que la división que desea desenfocar se encuentre debajo de la división que desea que aparezca en la parte superior.
PD: No cree división dentro de una división porque el hijo hereda las propiedades del padre.
#forblur {
height: 200px;
width: 200px;
background-color: blue;
margin: auto;
-webkit-filter: blur(3px);
-moz-filter: blur(3px);
-o-filter: blur(3px) -ms-filter: blur(3px);
filter: blur(3px);
z-index: -1;
}
#on-top-container {
margin: auto;
margin-top: -200px;
text-align: center;
height: 200px;
width: 200px;
z-index: 10;
}
<div id="forblur">
</div>
<div id="on-top-container">
<p>TEXT</p>
</div>