【问题标题】:Safari (and Chrome Mobile) z-index issue with rotateYrotateY 的 Safari(和 Chrome Mobile)z-index 问题
【发布时间】:2017-01-04 16:03:10
【问题描述】:

https://jsfiddle.net/nxbg7rq3/

在这个例子中,我需要 .mask 完全位于 .screen 之上。在不想工作的 Safari(和 Chrome Mobile)中。我已经尝试了很多,但我已经走到了尽头。

如果我不必更改 jfiddle 中已经存在的许多结构,那就太好了。哒!

html

  <div class="device">

    <div class="perspective">

      <div class="screen">
        <img src="http://lorempixel.com/400/200/" alt="">
      </div>

      <div class="mask"></div>

    </div>

  </div>

</div> 

css

 .container {
  -webkit-backface-visibility: visible;
  z-index: 0;
  transform: translate3d(0px, 0px, 0px);
  position: absolute;
  top: 20%;
  width: 200px;
  height: 300px;
}

.device {
     -webkit-transform-origin: left center;
    transform-origin: left center;
    -webkit-transform: translate3d(-38%, -50%, 0) scale(1);
    transform: translate3d(-38%, -50%, 0) scale(1);
    position: absolute;
    top: 50%;
    left: 50%;
    width: 100%;
    height: 100%;
}

.perspective {
  perspective: 114.35897435897436em;
  -webkit-perspective-origin: 0% 50%;
  perspective-origin: 0% 50%;
  width: auto
}

.screen {
    -webkit-transform-style: preserve-3d;
    transform-style: preserve-3d;
    -webkit-transform-origin: 67.5% 50%;
    transform-origin: 67.5% 50%;
    -webkit-transform: translateY(-51%) scale(1.07) rotateY(34deg);
    transform: translateY(-51%) scale(1.07) rotateY(34deg);
    position: absolute;
    top: 50%;
    left: 2.5%;
    width: 100%;
    height: 100%;
    overflow: hidden;
    outline: 5px solid #fa5d86;
    z-index: 0;
}

.screen img {
  width: 400px;
  height: 300px;
}

.mask {
  -webkit-transform-style: flat;
  transform-style: flat;
  width: 200px;
  height: 200px;
  position: relative;
  max-height: 100%;
  border: 5px solid black;
  z-index: 100;
}

【问题讨论】:

    标签: html css safari transform


    【解决方案1】:

    你可以使用双.mask吗?示例:

    <div class="container">
    
      <div class="device">
        <div class="mask" style="position: absolute;"></div>
        <div class="perspective">
    
          <div class="screen">
            <img src="http://lorempixel.com/400/200/" alt="">
          </div>
    
          <div class="mask" style="opacity: 0;"></div>
    
        </div>
    
      </div>
    

    【讨论】:

    • 谢谢!这不是一个真正的选择,因为掩码是实际用例中的图像,并且页面将足够重。但它确实有效,所以这将是一个很好的最后一根稻草解决方案!
    • 变换: translateY(-51%) scale(1.07) rotateY(34deg);由于 rotateY(34deg) 导致的这个问题可能可以通过 css-hak 完成另一种 safari 设计
    • 我意识到问题源于rotateY。为 Safari 显示它的另一种方式并不是我真正想到的。如果没有其他办法,当然。但希望有一些解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-25
    • 2011-05-23
    • 2013-04-06
    • 2011-04-24
    • 2021-02-12
    • 2011-04-20
    • 2012-12-01
    相关资源
    最近更新 更多