【问题标题】:Serve different images according to browser?根据浏览器提供不同的图像?
【发布时间】:2015-06-11 12:14:17
【问题描述】:

Chrome 渲染我的 SVG 不正确,所以我想为 Chrome 提供 PNG。 SVG 在其他现代浏览器中看起来很漂亮,尤其是 iOS 上的 Mobile Safari,用户可能会通过捏合来放大 - 所以其他人都得到了 SVG,但 Chrome 得到了 PNG。我该怎么做?

【问题讨论】:

  • 这个link 应该是一个很好的起点
  • 我很好奇你的 SVG 是什么,Chrome 无法正确渲染,但其他浏览器可以...
  • @wavemode 我调试了 SVG,现在它在 Chrome 上也能正常渲染。该问题是由 Chrome 渲染路径的方式不同引起的,其描边比 1px 更细。我不需要这些笔画,因此我将它们全部从 XML 中删除。这当然不会降低这个问题的有效性,因为知道如何使用 PHP 提供特定于浏览器的内容非常有用。如果您好奇,这是我更改的代码(用于所有填充)。以前是:style="fill:#cdc4b9;stroke:#cdc4b9;stroke-width:0.25907141;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" 现在缩短为:style="fill: #cdc4b9;"

标签: php google-chrome svg responsive-design user-agent


【解决方案1】:

阅读the user agent string并有条件地提供内容:

<?php

if (strpos($_SERVER['HTTP_USER_AGENT'], 'Chrome') !== false)
{
    ?>
        <img src="mycontent.png">
    <?php
} else {
    ?>
        <svg>mycontent</svg>
    <?php
}

?>

【讨论】:

  • 谢谢!它有效,但您的代码需要一个 ?> 最后关闭 PHP。添加它,我会接受它作为答案。 (不希望这个小标记问题给其他人造成混淆)
  • 实际上,PHP 不需要结束标记。 not include one 实际上是最佳实践。
  • 感谢您提供更多详细信息。我所知道的是我在添加结束标记之前收到以下错误,并添加它解决了它: Parse error: syntax error, unexpected ' 结束标记,因此它继续尝试将 HTML 解析为 PHP。如果关闭 PHP 不是推荐的解决方案,有什么想法可以解决这个问题吗?无论如何,我现在认为这个问题已经得到解答,因为我认为我们的 cmets 对任何其他可能遇到问题的读者来说已经足够澄清了。干杯。
  • @Mentalist 哦,亲爱的,我应该澄清一下 >.
猜你喜欢
  • 2019-04-15
  • 2014-01-22
  • 1970-01-01
  • 1970-01-01
  • 2014-06-20
  • 2016-01-13
  • 1970-01-01
  • 2014-04-23
  • 2013-11-03
相关资源
最近更新 更多