Проблемы с рендерингом элементов в Safari - PullRequest
0 голосов
/ 13 июня 2018

world {
  width: 100%;
  height: 100%;
  position: absolute;
  perspective:800px;
}
bg {
  width: 100%;
  height: 100%;
  position: absolute;
  z:1;
  transform:rotateX(20deg) rotateY(10deg);
  background: url(https://images.pexels.com/photos/1154498/pexels-photo-1154498.jpeg?auto=compress&cs=tinysrgb&h=1250);
}
layer_wrap {
  width: 350px;
  height: 60px;
  position: absolute;
  top: 50%;
  left: 50%;
  mix-blend-mode: overlay;
  z:100;
  perspective:500px;
  transform-style:flat;
  backface-visibility:hidden;
}

layer {
 position:relative;
  background: rgba(0, 122, 255,0.8);
  padding: 20px;
  color: #fff;
  text-transform: uppercase;
  font-family: "Arial";
  font-size: 30px;
  text-align: center;
  transformOrigin:50% 50% 50%;
  transform:translateX(-50%) translateY(-50%) rotateX(30deg) rotateY(5deg) translateZ(0.001px);
}
<world>
  <bg></bg>
  <layer_wrap>
    <layer>THIS IS A LAYER</layer>
  </layer_wrap>
</world>

В этом примере контейнер bg и контейнер layer_wrap должны находиться на одном уровне, чтобы можно было использовать режим mix-blend-mode и для других требованийПроект.

Результаты того, как он отображается в Safari и Chrome, различны.Safari разрезает половину слоя, отображая весь мир в одном контейнере.transformStyle preserve-3d или другие хитрости не помогли.

Также transformZ не является решением, так как он изменил бы размер и расстояние до зрителя.

Надеюсь, у одного из вас, ребята, есть хорошее решение для этого.Ура!

...