【发布时间】:2012-04-19 08:28:14
【问题描述】:
我目前正在开发一个网站,但遇到了 Safari 的问题。加载图像时,有一个黑色背景作为支架放置。我宁愿这是透明的或白色的,但我似乎无法弄清楚。看看吧:
http://blazing-ocean-6482.herokuapp.com/
我已经让 html 和 body 有 background-color:white;但这似乎并没有改变问题。
【问题讨论】:
标签: image safari background-color
我目前正在开发一个网站,但遇到了 Safari 的问题。加载图像时,有一个黑色背景作为支架放置。我宁愿这是透明的或白色的,但我似乎无法弄清楚。看看吧:
http://blazing-ocean-6482.herokuapp.com/
我已经让 html 和 body 有 background-color:white;但这似乎并没有改变问题。
【问题讨论】:
标签: image safari background-color
只需使用 interlaced 选项保存 PNG 图像
【讨论】:
我在 safari 6 中遇到了同样的问题。 我的图像在灰度色彩空间中。我将它切换到rgb,问题就消失了。 尝试检查您的图像色彩空间设置!
【讨论】:
这是因为 PNG 没有 Alpha 通道。 仅当图像具有透明像素时,Photoshop 才会使用 Alpha 通道保存图像。 为了在 Safari 中正常工作,PNG 图像的 IHDR 块必须在其内容中包含“truecolor-apha”。 您可以在tweakpng (http://entropymine.com/jason/tweakpng/) 或类似程序中查看png 块。
【讨论】:
我遇到了与上述相同的问题(也仅在 Safari 中)。我的body标签有一个背景图片,是repeat-x,用作整个网站的背景。当用户在 Safari 中访问页面时,页面加载时会出现黑色闪烁。我已经寻找了很长时间的解决方案,但它似乎是 Safari 的一个未解决的错误。
我尝试在 html 和 body 标签中添加“style: background-color: #FFF”,还尝试使用老派的“bgcolor: #FFF” - 没有用。
我能让 Safari 正常运行的唯一方法是使用 CSS + jQuery。在你的 html 和 CSS 文件中给 body 一个“bg-on”类。在链接的 .js 文件或标签中的 html 页面中:
jQuery(function ($) {
$(document).ready(function(){
$('body').removeClass('bg-on');
});//end document ready
/* NOTE (window).load fires when images have been fully loaded */
$(window).load(function() {
$('body').addClass('bg-on');
});//end window load function
});//end jQuery function no conflict mode
上面的内容是当浏览器加载 DOM 时,它会从 body 中删除类,因此 Safari 不会显示黑色背景,因为没有背景图像。然后当 window.load 事件触发时,当所有资源都加载完毕后,body 会被赋予背景图片...
它也不会影响禁用 JS 的浏览器,因为“bg-on”类是硬编码到 html 中的。
不是一个特别优雅的解决方案,但它对我有用。
【讨论】:
我最近在 Safari 6.0.2 中遇到了这个问题,它也出现在移动版 Safari 中(至少在 iOS 6 中)。将我的背景保存为隔行扫描并不能全面工作,颜色空间是 RGB。谢天谢地,我的背景颜色很少,将其转换为 GIF 完全解决了这个问题。
【讨论】:
我的问题是,我上传了正确的文件,但我使用页面构建器编辑了图像 - 并从 png 转换为 jpg。 首先用 alpha 制作 png,然后上传 - 工作。
【讨论】: