【问题标题】:Safari's issue with rendering inline-blocks scaled by scaleXSafari 按比例渲染内联块的问题
【发布时间】:2012-11-01 22:10:49
【问题描述】:

这是杯子预览图:

预览显示其他 div 包含的内容,但按比例缩小了 0.2。为了模拟杯子的表面曲线,我使用了一种技术,其中预览块的宽度 = 原始宽度 * 0.2,它们通过 scaleX 变换缩放 0.6、0.8、1、0.8。 0.6。

它工作正常(由于跨浏览器兼容性,我不能使用 html5 画布,这是一项要求),但是,正如您在附加图像上看到的(顶部图像来自 chrome,底部来自 safari),safari 呈现不需要的光线.没有什么帮助 - 绝对定位,将一个块放在另一个块上以隐藏那条光线。这是safari特有的问题,可能是因为在transformX块的边缘被抗锯齿之后,因为scaleX,侧面的边缘变得更加明亮。其他浏览器不这样做。

有谁知道如何解决这个问题以在 safari 中没有这些行的情况下进行渲染?

【问题讨论】:

  • 插图很好,但你能用你的 CSS 标记创建一个 jsfiddle,以便我们可以在不同的浏览器中重现它吗?

标签: css safari


【解决方案1】:

尝试使用background-size 而不是transform: scale

【讨论】:

  • 我认为它不会解决我的问题 - 包含内容的整个区域必须按比例调整大小,而不仅仅是背景。也许这张图片不清楚,但是,那些画布可以填充文本或图像等对象,如果我将开始在每个对象上使用背景大小,并使用字体大小手动重新调用文本,我会弄得一团糟。这就是为什么它必须在父容器上按比例完成。
  • 你说的很对,如果你不需要文本,它可能只是一个解决方案。一种可能(但很复杂)的解决方法是在画布上呈现文本和图像,将其导出为您设置为背景图像的 data:URI。
  • 所以也许这就是解决方案。使用我现在获得的与 IE8 的向后兼容性,并在 HTML5 画布上为包括 safari 在内的现代浏览器实现新的预览
猜你喜欢
  • 2012-09-12
  • 2020-08-31
  • 2015-09-12
  • 1970-01-01
  • 2011-01-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-14
相关资源
最近更新 更多