顶部的CSS红色正方形

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

我使用带有javascript的缩放工具,因为镜头我有CSS部分的问题。

如果可能的话,我希望通过仅修改CSS来使红色方块(视频链接)始终位于顶部。但我无法做到这一点,无论我对每个类影响的z-index属性,镜头总是隐藏元素......

你有什么想法吗?

您可以在以下链接上看到代码HTML和CSS:http://jsfiddle.net/8scpq7vz/

.cloudzoom-blank {
    	z-index: 10;
    	width: 465px;
    	height: 465px;
    }
    
    .cloudzoom-lens {
    	border: 1px solid #000;
    	width: 200px;
    	height: 200px;
    	cursor: move;
    	z-index: 10;
    }
    
    .product-essential {
    	position: relative;
    	top: 0;
    	left: 0;
    }
    
    .product-essential-b1 {
    	float: left;
    }
    
    .product-img-box {
    	position: relative;
    	z-index: 3;
    	float: left;
    	width: 465px;
    	margin-left: 16px;
    	background: #FFF;
    }
    
    .product-img-box .product-image {
    	width: 465px;
    	height: 465px;
    	padding: 0px;
    	border: 2px solid #E8E8E8;
    	background: #FFF;
    }
    
    .product-img-box .product-image div {
    	position: relative;
    }
    
    .product-img-box .product-image img#image {
    	position: relative;
    	width: 465px;
    	height: 465px;
    	opacity: 0.85;
    }
    
    .product-img-box .video {
    	position: absolute;
    	left: 10px;
    	top: 10px;
    	z-index: 100;
    	cursor: pointer;
    }
    
    .v2 {
    	float: left;
    	width: 41px;
    	height: 41px;
    	text-indent: -9999px;
    	background: #F22;
    }
<div class="product-essential">
      <div class="product-essential-b1">
    	<div class="product-img-box">
    	  <p class="video" id="video-btn">
    		<a target="_blank" class="v2">Video</a>
    	  </p>
    	  <div class="ldesktop">
    		<div id="product-media">
    		 <div class="product-image">
    			<div>
    				<img src="https://i.pinimg.com/474x/9d/d3/e5/9dd3e53d4d13d5000ef67028c8b03998.jpg" id="image">
    			</div>
    		  </div>
    		</div>
    	  </div>
    	</div>
      </div>
    </div>
    
    <div class="cloudzoom-blank" style="position: absolute; top: 28px; left: 29px;">
      <div class="cloudzoom-lens" style="overflow: hidden; position: absolute; top: 27px; left: 15px;">
    	<img style="position: absolute; left: -18px; top: -46px; max-width: none; width: 465px; height: 465px;" src="https://i.pinimg.com/474x/9d/d3/e5/9dd3e53d4d13d5000ef67028c8b03998.jpg">
      </div>
    </div>

谢谢。

css
3个回答
2
投票

只需从z-index中删除product-img-box,以避免创建堆叠上下文并能够将红色方块放在顶部:

.cloudzoom-blank {
  z-index: 10;
  width: 465px;
  height: 465px;
}

.cloudzoom-lens {
  border: 1px solid #000;
  width: 200px;
  height: 200px;
  cursor: move;
  z-index: 10;
}

.product-essential {
  position: relative;
  top: 0;
  left: 0;
}

.product-essential-b1 {
  float: left;
}

.product-img-box {
  position: relative;
  float: left;
  width: 465px;
  margin-left: 16px;
  background: #FFF;
}

.product-img-box .product-image {
  width: 465px;
  height: 465px;
  padding: 0px;
  border: 2px solid #E8E8E8;
  background: #FFF;
}

.product-img-box .product-image div {
  position: relative;
}

.product-img-box .product-image img#image {
  position: relative;
  width: 465px;
  height: 465px;
  opacity: 0.85;
}

.product-img-box .video {
  position: absolute;
  left: 10px;
  top: 10px;
  z-index: 100;
  cursor: pointer;
}

.v2 {
  float: left;
  width: 41px;
  height: 41px;
  text-indent: -9999px;
  background: #F22;
}
<div class="product-essential">
  <div class="product-essential-b1">
    <div class="product-img-box">
      <p class="video" id="video-btn">
        <a target="_blank" class="v2">Video</a>
      </p>
      <div class="ldesktop">
        <div id="product-media">
          <div class="product-image">
            <div>
              <img src="https://i.pinimg.com/474x/9d/d3/e5/9dd3e53d4d13d5000ef67028c8b03998.jpg" id="image">
            </div>
          </div>
        </div>
      </div>
    </div>
  </div>
</div>

<div class="cloudzoom-blank" style="position: absolute; top: 28px; left: 29px;">
  <div class="cloudzoom-lens" style="overflow: hidden; position: absolute; top: 27px; left: 15px;">
    <img style="position: absolute; left: -18px; top: -46px; max-width: none; width: 465px; height: 465px;" src="https://i.pinimg.com/474x/9d/d3/e5/9dd3e53d4d13d5000ef67028c8b03998.jpg">
  </div>
</div>

有关:

Why can't an element with a z-index value cover its child?

I have position but z index is not working


1
投票

视频元素的父元素product-essential具有较低的z-index(默认为0)到它的兄弟cloudzoom-blank。所以cloudzoom-blank中的元素显示在product-essential内的任何元素上方。 (如果两者都具有相同的z-index,那么最后指定的一个将在顶部)

如果可能,您可以更改元素的排列


0
投票

你有没有尝试过将position:fixed添加到你的.v2课程?像这样:

.v2 {
float: left;
width: 41px;
height: 41px;
text-indent: -9999px;
background: #F22;
position: fixed;
}

不确定这是不是你想要的,但似乎是。

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