【问题标题】:srcset and sizes not working in safari?srcset 和 size 在 safari 中不起作用?
【发布时间】:2018-07-19 00:49:51
【问题描述】:

由于某种原因,在 Safari 中查看我的网站时,srcset 和大小无法正常工作。它适用于 Chrome 和 Firefox,但在 Safari 中查看时,它会加载可用的最大图像,即使我定义的较小图像在那里。

我正在使用用于 Wordpress 的 metabox.io 插件,它允许我创建图像元框,并且我正在上传两倍于 homepage-image-lg 大小的图像以供视网膜显示加载。

    <?php 
$homeimage1 = rwmb_meta( 'su_homepage-interior-design', array( 'size' => 'homepage-image-lg' ) );
$interiorDesign = reset($homeimage1); ?>            

                    <img class="scene_element scene_element--fadeinup"  src="<?php echo $interiorDesign['url'];?>" srcset="<?php echo $interiorDesign['srcset']; ?>" 

                    sizes="(max-width:767px) 767px, (min-width: 40.063em) and (min-width: 64em) and (max-width:74.9999em) 787px, (min-width: 75em) 787px, 787px" itemprop="thumbnail" alt="Image description" >

为什么会这样? Srcset 和大小应该适用于 Safari 对吧?

图片来源

<img src="/wp-content/uploads/2017/11/interior-design-787x625.jpg" srcset=
  "/wp-content/uploads/2017/11/interior-design.jpg 1574w, /wp-content/uploads/2017/11/interior-design-768x610.jpg 768w, /wp-content/uploads/2017/11/interior-design-792x629.jpg 792w, /wp-content/uploads/2017/11/interior-design-787x625.jpg 787w"
  sizes=
  "(max-width:767px) 767px, (min-width: 40.063em) and (min-width: 64em) and (max-width:74.9999em) 787px, (min-width: 75em) 787px, 787px"
  itemprop="thumbnail" alt="Image description" />

【问题讨论】:

    标签: wordpress responsive-design safari responsive-images srcset


    【解决方案1】:

    可以给我们$interiorDesign['srcset'];的内容吗?

    你的sizes中有几个没用的部分:

    • (max-width:767px) 767px:当视口小于或等于767px时,表示图像为767像素宽
    • (min-width: 40.063em) and (min-width: 64em) and (max-width:74.9999em) 787px(min-width: 40.063em)没用,因为后面跟着(min-width: 64em)。因此,当视口位于 64em74.9999em 之间时,图像的宽度为 787 像素。假设根字体大小是16px (not always true),所以64em 表示1024px74.9999em 表示1199.99px。当视口介于这两个值之间时,图像的宽度为 787 像素。
    • (min-width: 75em) 787px:当视口大于等于1200px时,图片为787像素宽。
    • 787px:最后,当没有其他媒体查询匹配时(所以当视口在768px1023px 之间时),图像是787 像素宽

    所以你的图片只能有两种尺寸:767px787px,而你的sizes 属性就这么简单:

    sizes="(max-width:767px) 767px, 787px"

    但无论如何,这些值是如此接近,我认为这可能不是你所需要的。

    【讨论】:

    • 嗨 Nicolas,谢谢您的回答。我附上了 $interiorDesign['srcset']; 的内容。在我的问题中-我希望这会有所帮助。我同意尺寸可以简化,老实说,我认为我已经从另一张图像中复制了尺寸并​​保留了媒体查询。但是,正在加载的图像不是 768px 图像。相反,正在加载原始图像:(
    • 顺便说一句,这只发生在 Safari 10.0.01 上。
    • 那么,和这里的问题一样吗? stackoverflow.com/questions/48705380/…
    • 嗨,尼古拉斯,是的
    • 所以,我看到有人告诉你它在 Safari 11.0.3 中按预期工作,所以可能在 11.0.1 中存在错误。你检查过你用 11.0.3 得到了什么吗?
    猜你喜欢
    • 2014-12-01
    • 1970-01-01
    • 2017-09-03
    • 2013-07-19
    • 2014-10-14
    • 2013-09-30
    • 2016-02-04
    • 2017-01-17
    • 2017-09-28
    相关资源
    最近更新 更多