一个月的谜尚待解决,我希望有人以前见过这个,并且知道如何解决。使用Angular框架构建PWA时,我遇到了CSS图像和CSS转换如何引起变形和幻影的问题,这实际上意味着在更正此问题之前,该应用无法在iOS设备上发布。
这是非常不一致的,并且一次随机出现一幅到几幅图像。它仅在iOS中发生。在以下设备上进行了测试和复制:
早在Galaxy S4和Galaxy Tab A以及最新的Pixel 3上,任何Android设备上都不会发生这种情况,台式机上的Chrome,Safari或Firefox也不会发生这种情况。
在某些情况下,单个图标会在整个图标集中重复出现,例如在选项卡栏上。
<div style="background-image: url('/assets/elements/SolidCircleCheck.png');
background-position: center center;
background-size: contain;
background-repeat: no-repeat;
image-rendering: crisp-edges;
height: 3rem; width: 3rem;
filter: brightness(2)
drop-shadow(rgba(0, 0, 0, 0.4) 0px 0px 0.1rem);
margin: auto;"></div>
<div class="nav-tab-section-a nav-tab-inactive">
<img class="nav-tab-image text-no-select" src="/assets/nav/Chat.png" alt="Chat">
<br /><span class="nav-tab-title text-no-select">Members</span>
</div>
.nav-tab-section-a {
grid-area: nav-tab-section-a;
}
.nav-tab-active, .nav-tab-inactive {
margin: 0 auto;
align-content: center;
text-align: center;
}
.nav-tab-inactive {
-webkit-filter: brightness(110%);
filter: brightness(110%);
}
.nav-tab-image {
height: 3.25rem;
}
.text-no-select {
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
如您所见,内联样式和样式表方法以及使用HTML本机<img>
标签和div背景均会出现问题。
一段时间以来,我认为这可能是一个Angular Lifecycle钩子问题,其中的元素被重绘,但是此问题已得到纠正,并且每次DOM更改都不会重新渲染图像。
有人遇到过并解决过这个问题吗?
答案 0 :(得分:0)
我会立即怀疑这是PNG编码问题。使用其他软件产品重新保存您所有的PNG资产,并尝试追踪创建PNG的来源以及使用了哪些软件。
您需要完全重新生成PNG文件。因此,我将首先保存为TIFF等其他格式,然后再次将其另存为PNG。为了确保强制图像编辑器重新生成所有PNG颜色数据,标头和编码。
您可以使用免费的开源编辑器执行此操作:
Safari Web浏览器具有使图像变形的历史记录。图形文件虽然很流行并且经常使用,但包含许多内部编码标准。文件扩展名可能始终像PNG,JPG或TIFF。编码的版本,格式和内容可能相差很大。重要的一步是使用最新的图像软件,并确保正确生成PNG文件。
有关Safari图像问题的参考:
答案 1 :(得分:0)
当我向图像添加过滤器时,我开始在iOS Safari中出现此问题。只是猜测可能是像素密度问题或性能问题。
当前正在寻找解决方案,而不是为iOS用户关闭解决方案。这是我发现可以尝试的一些答案:
Why is filter(drop-shadow) causing my SVG to disappear in Safari?
最后一种解决方案可能会消耗更多的电池。