簡體   English   中英

如何根據屏幕尺寸渲染不同的圖像

[英]How to render different images based on screen size

我想根據瀏覽器屏幕寬度呈現不同的 svg。 我找到了一個解決方案,希望我在 img 標簽中使用srcSet 但是,我無法讓它工作。

目標應該是在移動設備上呈現SmallTalents ,在平板電腦上呈現BigTalents +

快速筆記:

  • 我正在使用 TailwindCSS。
  • svgs 完全不同,不僅僅是縮小版。

例子

import React from "react";
import SmallTalents from "../../../assets/smallTalents.svg";
import BigTalents from "../../../assets/bigTalents.svg";

function Example() {
  return (
    <section>
      <img
        srcSet={`${SmallTalents}, 200w ${BigTalents} 600w`}
        sizes="(max-width: 600px) 480px, 800px"
        src={SmallTalents}
        alt="talents"
      />
    </section>
  );
}

export default Example;

更新:

試過這個,不工作

<picture>
  <source media="(min-width: 300px)" srcset={SmallTalents} />
  <source media="(min-width: 900px)" srcset={BigTalents} />
</picture>

解決方案(不理想)

<img src={SmallTalents} alt="talents" className="my-5 md:hidden" />
<img src={BigTalents} alt="talents" className="my-5 hidden md:flex" />

您可以使用 html 中的 picture 元素根據屏幕尺寸渲染不同的圖像:

<picture>
  <source media="(min-width: 650px)" srcset="img_food.jpg">
  <source media="(min-width: 465px)" srcset="img_car.jpg">
  <img src="img_girl.jpg">
</picture>

我認為您的 srcSet 屬性中有一個小錯字,200w 應該在逗號的左側。 srcSet={ ${SmallTalents} 200w, ${BigTalents} 600w }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM