reactjs 带有React. AVIF的Astro图像无法在移动的上渲染

cl25kdpy  于 2023-01-08  发布在  React
关注(0)|答案(1)|浏览(165)

使用astro和react我有一个自定义的图像组件:

<ImageWBorder
              src="images/pix.avif"
              alt="main band image"
              leftBorder
            />

图像W边框

return (
    <div className="aspect-square relative z-10 h-64 sm:h-72 sm:h-80 mobile:h-96 xl:h-100">
      <img
        alt={alt}
        src={src}
        className="object-cover w-full h-full rounded-full"
      />
      <div style={{ zIndex: -1 }} className={styles} />
    </div>
  )

图像在桌面上渲染良好,但在我的移动终端上没有.avif扩展名的图像渲染。我以为.avif在所有浏览器和操作系统上都得到了广泛支持?我正在Safari和Chrome上测试iPhone 13。还有人对这些问题有经验吗?

yv5phkfx

yv5phkfx1#

虽然AVIF有越来越好的支持,但它仍然不是普遍的。Can I Use reports around 20% of users won’t be able to render AVIF images currently.只有iOS上的Safari 16似乎支持AVIF,Safari桌面还不支持它。因为iOS上的所有浏览器都使用Safari的引擎(包括Chrome),他们也将无法支持旧版本的iOS上的AVIF。
目前的解决方案是选择一种更广泛支持的图像格式,例如WebP或JPEG,或者使用<picture>元素的响应图像技术来提供多种格式。这允许不支持AVIF的浏览器退回到另一种格式。例如:

<picture>
  <source srcset="image.avif" type="image/avif">
  <source srcset="image.webp" type="image/webp">
  <img src="image.jpg" alt="A description of the image." 
    width="300" height="200" loading="lazy" decoding="async">
</picture>

相关问题