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

图像高度超过带有附加元素的容器

  •  0
  • Paul  · 技术社区  · 7 年前

    我要检查一下 smallCatalogBlock 如果 data-availability="No" 如果不是,那么 soonOverlay 附加到 smallCatalogBlockImg div

    我遇到的问题是 重叠覆盖 高度仅覆盖图像。右MOW,它超过图像容器并填充整个 小目录块 div

    我能做什么来掩盖 小目录锁定 ?

    $('.smallCatalogBlock').each(function() {
    		if ($(this).data('availability') === 'No') {
    			$(this).find('.smallCatalogBlockImg').append('<div class="soonOverlay"><div class="soonOverlayInner"><div class="total-center"><p class="dGw">Coming Soon</p></div></div></div>');
    		}
    	});
    .smallCatalogWrap {
    	width: 100%;
    	height: auto;
    	margin: 60px 0;
    }
    .smallCatalogBlock {
    	width: 45%;
    	height: auto;
    	display: inline-block;
    	vertical-align: top;
    	margin: 20px auto;
    	text-decoration: none;
    }
    .smallCatalogBlock img {
    	width: 80%;
    	height: auto;
    	box-shadow: 10px 5px 5px rgba(0,0,0,.3);
    	display: block;
    	margin: 0px auto 15px auto;
    }
    .smallCatalogTitle {
    	font-family: 'Nunito', sans-serif;
    	color: #4d4d4d;
    	font-size: 1.3rem;
    	text-align: center;
    	display: block;
    	font-weight: 400;
    }
    .comingSoonSmall {
    	position: relative;
    }
    .comingSoonSmall .soonOverlay {
    	width: 80%;
    	height: 100%;
    	background: #b82222;
    	opacity: .8;
    	position: absolute;
    	top: 0;
    	bottom: 0;
    	margin: 0 10%;
    }
    .soonOverlayInner {
    	position: relative;
    	min-height: 350px;
    }
    .soonOverlayInner .dGw {
    	font-weight: 600;
    	text-transform: uppercase;
    	font-size: 2rem;
    }
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <div class="smallCatalogBlock comingSoonSmall" data-availability="No">
        <div class="smallCatalogBlockImg">
          <img src="https://images.pexels.com/photos/248797/pexels-photo-248797.jpeg?auto=compress&cs=tinysrgb&dpr=1&w=500" alt="A">
        </div>
      <span class="smallCatalogTitle">A</span>
    </div><div class="smallCatalogBlock comingSoonSmall" data-availability="No">
        <div class="smallCatalogBlockImg">
          <img src="https://images.pexels.com/photos/248797/pexels-photo-248797.jpeg?auto=compress&cs=tinysrgb&dpr=1&w=500" alt="B">
        </div>
      <span class="smallCatalogTitle">B</span>
    </div>
    1 回复  |  直到 7 年前
        1
  •  2
  •   Barthy    7 年前

    您忘记了相对定位覆盖的父级。只有这样,覆盖才能(绝对)相对于其父级定位和调整大小。

    Read more here.

    $('.smallCatalogBlock').each(function() {
      if ($(this).data('availability') === 'No') {
        $(this).find('.smallCatalogBlockImg').append('<div class="soonOverlay"><div class="soonOverlayInner"><div class="total-center"><p class="dGw">Coming Soon</p></div></div></div>');
      }
    });
    .smallCatalogWrap {
      width: 100%;
      height: auto;
      margin: 60px 0;
    }
    
    .smallCatalogBlock {
      width: 45%;
      height: auto;
      display: inline-block;
      vertical-align: top;
      margin: 20px auto;
      text-decoration: none;
    }
    
    .smallCatalogBlock img {
      width: 80%;
      height: auto;
      box-shadow: 10px 5px 5px rgba(0, 0, 0, .3);
      display: block;
      margin: 0px auto 15px auto;
    }
    
    .smallCatalogTitle {
      font-family: 'Nunito', sans-serif;
      color: #4d4d4d;
      font-size: 1.3rem;
      text-align: center;
      display: block;
      font-weight: 400;
    }
    
    .comingSoonSmall {
      position: relative;
    }
    
    .comingSoonSmall .soonOverlay {
      width: 80%;
      height: 100%;
      background: #b82222;
      opacity: .8;
      position: absolute;
      top: 0;
      bottom: 0;
      margin: 0 10%;
    }
    
    .soonOverlayInner {
      position: relative;
      min-height: 350px;
    }
    
    .soonOverlayInner .dGw {
      font-weight: 600;
      text-transform: uppercase;
      font-size: 1rem;
      text-align: center;
    }
    
    .smallCatalogBlockImg {
      position: relative;
    }
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <div class="smallCatalogBlock comingSoonSmall" data-availability="No">
      <div class="smallCatalogBlockImg">
        <img src="https://images.pexels.com/photos/248797/pexels-photo-248797.jpeg?auto=compress&cs=tinysrgb&dpr=1&w=500" alt="A">
      </div>
      <span class="smallCatalogTitle">A</span>
    </div>
    <div class="smallCatalogBlock comingSoonSmall" data-availability="No">
      <div class="smallCatalogBlockImg">
        <img src="https://images.pexels.com/photos/248797/pexels-photo-248797.jpeg?auto=compress&cs=tinysrgb&dpr=1&w=500" alt="B">
      </div>
      <span class="smallCatalogTitle">B</span>
    </div>