代码之家  ›  专栏  ›  技术社区  ›  sosick

如何用百分比高度填充图像?

  •  0
  • sosick  · 技术社区  · 6 年前

    我想用动态数据填充我的图像百分比。我正在寻找这个问题的最佳解决方案。 现在,我的第一个想法是将DIV绝对设置为相对图像,它几乎可以工作,但我不知道为什么我的DIV .fill 类不隐藏在图像下。我试过用少量的 z-index 但没用。

    我的主意没问题,或者这是个更好的解决办法?

    * {
      margin: 0;
      padding: 0;
      box-sizing: border-box;
    }
    
    html, body {
      height: 100%;
    }
    
    .container {
      display: flex;
      justify-content: center;
      align-items: center;
      height: 100%;
      background-color: lightcoral;
    }
    
    .female {
      position: relative;
      background: url("https://i.imgur.com/qsVFCFh.png");
      background-size: cover;
      background-color: lightgray;
      width: 74px;
      height: 157px;
    }
    
    .fill {
      position: absolute;
      bottom: 0;
      width: 100%;
      background-color: lightblue;
    }
    <div class="container">
      <div class="female">
        <div class="fill" style="height: 45%;"></div>
      </div>
    </div>
    2 回复  |  直到 6 年前
        1
  •  1
  •   Temani Afif    6 年前

    * {
      margin: 0;
      padding: 0;
      box-sizing: border-box;
    }
    
    html, body {
      height: 100%;
    }
    
    .container {
      display: flex;
      justify-content: center;
      align-items: center;
      height: 100%;
      background-color: lightcoral;
    }
    
    .female {
      background: 
        url("https://i.imgur.com/qsVFCFh.png") center / cover,
        linear-gradient(lightblue,lightblue)   bottom / 100% var(--p,0),
        lightgray;
      background-repeat:no-repeat;
      width: 74px;
      height: 157px;
    }
    <div class="container">
      <div class="female" style="--p:45%;">
      </div>
    </div>
        2
  •  2
  •   Adam    6 年前

    .fill .female DOM

    * {
      margin: 0;
      padding: 0;
      box-sizing: border-box;
    }
    
    html, body {
      height: 100%;
    }
    
    .container {
      display: flex;
      justify-content: center;
      align-items: center;
      height: 100%;
      background-color: lightcoral;
      position: relative;
    }
    
    .wrapper {
      position: relative;
      width: 74px;
      height: 157px;
      overflow:hidden;
    }
    
    .female {
      position: relative;
      background: url("https://i.imgur.com/qsVFCFh.png");
      background-size: cover;
      width: 74px;
      height: 157px;
      z-index:2;
    }
    
    .fill {
      position: absolute;
      bottom: 0;
      width: 100%;
      background-color: lightblue;
      z-index:1;
    }
    <div class="container">
      <div class="wrapper">
        <div class="female"></div>
        <div class="fill" style="height: 45%;"></div>
      </div>
    </div>