CSS z-index 属性 不起作用

CSS z-index property doesn't work

我正在尝试使用 "filter" 属性 为 div(背景图片)提供悬停效果。但是它对另一个应该结束的div(我的文字)产生了影响。 我应用了 z-index 属性(没有忘记我的 divs 的位置)但它不起作用。你会看到,我的文字也很模糊,这是不应该的。你能告诉我我的代码有什么问题吗?

这是显示我的问题的代码笔:https://codepen.io/Gillian-D/pen/qmqEQy

HTML

<div class="container">
  <div class="row">
     <div class="col-sm-6 left_part-padding">
         <div class="left_part">
           <div class="left_part_content">
             Left part
          </div>
         </div>
     </div> 
</div>

CSS

.container {
  margin-right: auto;
  margin-left: auto;
}


.left_part {
  height: 40vh;
  position: relative;
  z-index: 0;
  background-image: url(img/book2.jpeg);
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
  background-color: #000;
  box-shadow: 0 50px 60px 0 rgba(0,0,0,.35);
  border-radius: 10px;
}


.left_part:hover {
-webkit-filter: blur(5px);
filter: blur(5px);
-webkit-transition: .5s ease-in-out;
position: relative;
z-index:0;
}

.left_part_content:hover {
color: #fed136;
position: relative;
z-index: 2;
}

.left_part-padding, .right_part-padding, .bottom_part-padding {
padding-left: 10px;
padding-right: 10px;
}

.left_part_content {
  color: white;
  font-family: "Raleway", Helvetica, Arial, sans-serif;
  text-transform: uppercase;
  font-size: 1.2rem;
  font-weight: 400;
  letter-spacing: .300em;
  margin-right: -.300em;
  text-align: center;
  vertical-align: middle;
  line-height: 40vh;
  position: relative;
  z-index: 2;
}

非常感谢!

当您在元素上添加效果时,大多数情况下它们的子元素也会受到影响,因此在这种情况下,您可以为 background-image

使用伪元素

Updated codepen

更改了 CSS 条规则

.left_part {
  height: 40vh;
  position: relative;
  background-color: #000;
  box-shadow: 0 50px 60px 0 rgba(0,0,0,.35);
  border-radius: 10px;
}

.left_part::before {
  content: '';
  position: absolute;
  top: 0; left: 0;
  width: 100%;
  height: 100%;
  background-image: url(http://lorempixel.com/500/200/nature/1/);
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
  background-color: #000;
  border-radius: 10px;
}

.left_part:hover::before {
  -webkit-filter: blur(5px);
  filter: blur(5px);
}

看这里:

https://codepen.io/anon/pen/EmNPVZ

我把文本部分元素从待模糊的背景中取出来div,现在它们有相同的父元素。接下来我以不同的方式解决了居中,通常的方式(绝对位置,顶部和左侧 50%,transform: translate(-50%, -50%)。然后我将 pointer-events: none; 应用到文本层,以便它下面的悬停可以文字。我添加了一个影响文本的不同悬停规则 - 请参阅我的代码笔。HTH