如何模糊(css)div没有模糊子元素

问题描述 投票:34回答: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);
}

如果我不想模糊按钮,我需要做什么?

http://jsfiddle.net/L8ksa46g/

html css blur
3个回答
3
投票

如何禁用子元素上的模糊?

.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>

34
投票

使用bluropacity属性时,无法忽略子元素。如果将这些属性中的任何一个应用于父元素,它也将自动应用于子元素。

还有另一种解决方案:在父级div中创建两个元素 - 一个用于背景的div和另一个用于内容的div。在父position:relative上设置div并将position:absolute; top:0px; right:0px; bottom:0px; left:0px;(或设置高度/宽度设置为100%)设置为背景的子元素。使用此方法,内容div不会受到背景属性的影响。

例:

<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>

如果你看到背景掩盖内容,那么使用the z-index property发送第二个内容div背后的背景。


5
投票

只需创建两个分区并调整它们的z索引和边距,使得要模糊的分区位于要显示在顶部的分区之下。

PS:不要在分区内创建分区,因为子级继承了父级的属性。

#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>
© www.soinside.com 2019 - 2024. All rights reserved.