覆盖层覆盖 div - 保持字体为白色

问题描述 投票:0回答:1

我试图改变 div 的亮度(不仅仅是图像亮度)。一般一个div中有一张图片,描述和标题,主div的背景颜色是白色。我想在鼠标悬停时显示 ovarlay div。想法是用覆盖 div 覆盖主 div。但现在我只得到图像亮度和字体的变化。我想要实现的是覆盖洞 div,同时保持字体的白色 z。

当我添加缩略图亮度效果时,它也会影响字体变暗。如何保持字体为白色。

col-sm-6、caption、thumbnail 类由 bootstrap 定义。

代码:

                     <div  class="hovereffect thumbnail Staffinview1 delay1s">
                      <img src="./images/photo.jpg">

                      <div class="overlay">
                        <?php echo Person_description; ?>
                      </div>
                    
                      <div class="caption">
                        <h3>Name Surname</h3>
                      </div>

                      
                    </div>
                  </div>

CSS代码:

                 .thumbnail:hover {
                     transition:         all 0.5s  ease-in-out;
                    -moz-transition:    all 0.5s  ease-in-out;
                    -webkit-transition: all 0.5s  ease-in-out;
                    -o-transition:      all 0.5s  ease-in-out;
                    -ms-transition:     all 0.5s  ease-in-out;
                    box-shadow: 0 12px 16px 0 rgba(0,0,0,0.24), 0 17px 50px 0 rgba(0,0,0,0.5);
                    }
                    
                    .hovereffect {
                      width: 100%;
                      height: 100%;
                      float: left;
                      overflow: hidden;
                      position: relative;
                      text-align: center;
                      cursor: default;
                    }

                    .hovereffect .overlay {
                      position: absolute;
                      overflow: hidden;
                      width: 80%;
                      height: 80%;
                      left: 10%;
                      top: 10%;
                      border-bottom: 1px solid #FFF;
                      border-top: 1px solid #FFF;
                      -webkit-transition: opacity 0.35s, -webkit-transform 0.35s;
                      transition: opacity 0.35s, transform 0.35s;
                      -webkit-transform: scale(0,1);
                      -ms-transform: scale(0,1);
                      transform: scale(0,1);
                      color: #fff;
                    }

                    .hovereffect:hover .overlay {
                      opacity: 1;
                      filter: alpha(opacity=100);
                      -webkit-transform: scale(1);
                      -ms-transform: scale(1);
                      transform: scale(1);

                    }


                    .hovereffect img {
                      display: block;
                      position: relative;
                      -webkit-transition: all 0.35s;
                      transition: all 0.35s;
                    }

                    .hovereffect:hover img{
                      filter: url('data:image/svg+xml;charset=utf-8,<svg                         xmlns="http://www.w3.org/2000/svg"><filter id="filter"><feComponentTransfer color-interpolation-filters="sRGB"><feFuncR type="linear" slope="0.6" /><feFuncG type="linear" slope="0.6" /><feFuncB type="linear" slope="0.6" />                                                                        </feComponentTransfer></filter></svg>#filter');
                      filter: brightness(0.3);
                      -webkit-filter: brightness(0.3);
                    }
css brightness
1个回答
1
投票

我相信你正在努力实现面具 您可以使用

z-index
属性和
postion:absolute
来覆盖该 div

CSS规则

.overlay {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0%;
  z-index: 0;
  transition: all 0.5s;
}
.overlay:hover {
  z-index: 1;
  background: rgb(173, 173, 173);
  opacity: 0.5;
}

以下片段

.thumbnail:hover {
  transition: all 0.5s ease - in -out;
  - moz - transition: all 0.5s ease - in -out;
  - webkit - transition: all 0.5s ease - in -out;
  - o - transition: all 0.5s ease - in -out;
  - ms - transition: all 0.5s ease - in -out;
  box - shadow: 0 12px 16px 0 rgba(0, 0, 0, 0.24), 0 17px 50px 0 rgba(0, 0, 0, 0.5);
}
.hovereffect {
  width: 100 %;
  height: 100 %;
  float: left;
  overflow: hidden;
  position: relative;
  text - align: center;
  cursor: default;
}
.hovereffect.overlay {
  position: absolute;
  overflow: hidden;
  width: 80 %;
  height: 80 %;
  left: 10 %;
  top: 10 %;
  border - bottom: 1px solid# FFF;
  border - top: 1px solid# FFF;
  - webkit - transition: opacity 0.35s, -webkit - transform 0.35s;
  transition: opacity 0.35s, transform 0.35s;
  - webkit - transform: scale(0, 1);
  - ms - transform: scale(0, 1);
  transform: scale(0, 1);
  color: #fff;
}
.hovereffect:hover.overlay {
  opacity: 1;
  filter: alpha(opacity=100);
  - webkit - transform: scale(1);
  - ms - transform: scale(1);
  transform: scale(1);
}
.hovereffect img {
  display: block;
  position: relative;
  - webkit - transition: all 0.35s;
  transition: all 0.35s;
}
.overlay {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0%;
  z-index: 0;
  transition: all 0.5s;
}
.overlay:hover {
  z-index: 1;
  background: rgb(173, 173, 173);
  opacity: 0.5;
}
<div class="hovereffect thumbnail Staffinview1 delay1s">
  <img src="./images/photo.jpg">

  <div class="overlay">
    <?php echo Person_description; ?>
  </div>

  <div class="caption">
    <h3>Name Surname</h3>
  </div>


</div>

© www.soinside.com 2019 - 2024. All rights reserved.