几个月的谜团还有待解决,我希望有人之前见过这个,并知道如何解决它。使用Angular框架构建PWA,我遇到了CSS图像和CSS转换如何导致扭曲和显示的问题,这有效意味着在更正之前无法为iOS设备发布应用程序。
它非常不一致,一次从一个到几个图像随机发生。它只发生在iOS中。在以下设备上进行测试和复制:
任何Android设备都不会发生回到Galaxy S4和Galaxy Tab A,也不会出现像Pixel 3那样......也不会出现在台式机上的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更改都不会重新渲染图像。
以前有没有遇到过这个问题?
我会立即怀疑这是一个PNG编码问题。使用其他软件产品重新保存所有PNG资产,并尝试追踪创建PNG的人员的来源以及他们使用的软件。
您需要完全重新生成PNG文件。所以我首先保存为另一种格式,如TIFF,然后再次重新保存为PNG。确保强制图像编辑器重新生成所有PNG颜色数据,标题和编码。
您可以使用免费的开源编辑器来执行此操作:
Safari Web浏览器具有扭曲图像的历史记录。流行且常用的图形文件包含各种内部编码标准。虽然文件扩展名可能一直是PNG,JPG或TIFF。编码,格式和内容的版本可能有很大差异。使用最新的图像软件,并确保正确生成PNG文件是一个重要的步骤。
参考Safari图像问题:
当我在图片中添加过滤器时,我开始在iOS Safari中遇到此问题。只是猜测它可能是像素密度问题或性能问题。
目前正在寻找解决方案,而不是为iOS用户关闭它。以下是我发现的一些答案:
Why is filter(drop-shadow) causing my SVG to disappear in Safari?
然而,最后的解决方案可能会耗尽更多的电池。