代码之家  ›  专栏  ›  技术社区  ›  James John McGuire 'Jahmic'

css过滤图像上的亮度,但不过滤文本覆盖

  •  0
  • James John McGuire 'Jahmic'  · 技术社区  · 5 年前

    我试图显示暗图像,除非在悬停,同时保持覆盖文本纯白色的所有时间。我有以下资料:

    css:

    .transition-item
    {
        filter: brightness(75%);
    }
    
    .transition-item:hover
    {
        filter: brightness(100%) !important;
    }
    
    .image-item img
    {
      width: 200px;
    }
    
    .category-caption
    {
        position: relative;
        width: 200px;
        height: 70px;
        margin-top: -91px;
        z-index: 10;
        text-align: center;
      color: white;
    }
    

    <div class="transition-item">
      <div class="image-item">
        <img src="https://live.staticflickr.com/5480/12139930183_f027b035ad_h.jpg">
      </div>
      <div class="category-caption">
        <h2>Testing</h2>
      </div>
    </div>
    

    当亮度效果起作用时,它也会影响图像。也可以看作 jsfiddle

    我已经尝试将文本覆盖从“转换项”的子项中移除。就像这样:

    <div class="transition-item">
      <div class="image-item">
        <img src="https://live.staticflickr.com/5480/12139930183_f027b035ad_h.jpg">
      </div>
    </div>
      <div class="category-caption">
        <h2>Testing</h2>
      </div>
    

    有没有办法让图像的亮度和覆盖层的纯白色文本一起工作?

    我的退步是使用两个不同的静态图像,它们已经以不同的亮度保存,并使用 display: none.

    我见过一些类似的问题和方法,但没有一个解决方案像我需要的那样具体。

    1 回复  |  直到 5 年前
        1
  •  1
  •   G-Cyrillus    5 年前

    你也可以在h2上重置过滤器:悬停

    .transition-item,
    .transition-item:hover h2 /* added lukily it starts from a parent set at 100% */{
      filter: brightness(75%);
    }
    
    .transition-item:hover {
      filter: brightness(100%);
    }
    
    .image-item img {
      width: 200px;
    }
    
    .category-caption {
      position: relative;
      width: 200px;
      height: 70px;
      margin-top: -91px;
      z-index: 10;
      text-align: center;
      color: white;
    }
    <div class="transition-item">
      <div class="image-item">
        <img src="https://live.staticflickr.com/5480/12139930183_f027b035ad_h.jpg">
      </div>
      <div class="category-caption">
        <h2>Testing</h2>
      </div>
    </div>

    或者只选择img?

    .transition-item img{
      filter: brightness(75%);
    }
    
    .transition-item:hover img {
      filter: brightness(100%);
    }
    
    .image-item img {
      width: 200px;
    }
    
    .category-caption {
      position: relative;
      width: 200px;
      height: 70px;
      margin-top: -91px;
      z-index: 10;
      text-align: center;
      color: white;
    }
    <<div class=“image item”>
    <img src=“https://live.staticflickr.com/5480/12139930183_f027b035ad_h.jpg”>
    <div class=“category caption”>
    </分区>
    </分区>