Skip to content

SImage <s-image> ​

显示图片,可控制宽高比、适配方式、边框和懒加载。 SImage 是 Shopify Polaris <s-image> web component 的带类型 Vue 3 wrapper。

ts
import { SImage } from 'polaris-vue-elements'

最佳实践 ​

  • 使用清晰且经过优化的图片。 选择分辨率高、同时针对 Web 进行了优化的图片。
  • 有目的地添加图片。 仅当图片能让内容更清晰或有助于引导商家时才使用。

参阅 Shopify 关于 <s-image> 的最佳实践(英文)以获取完整指南。

示例 ​

下方图片从 picsum.photos 加载,这是一个第三方占位图片服务,仅用于演示。

vue
<script setup>
import { SImage } from 'polaris-vue-elements'
</script>

<template>
  <SImage
    src="https://picsum.photos/seed/polaris-image/400/300"
    alt="Placeholder scenic photo"
    aspectRatio="4/3"
    inlineSize="fill"
    objectFit="cover"
    borderRadius="200"
    style="width: 220px"
  />
</template>

Props ​

Prop类型说明
accessibilityRole"presentation" | "none" | "img"组件内容的语义含义。设置后,辅助技术将使用该 role 帮助用户浏览页面。 - none:对辅助技术完全隐藏元素及其内容 - presentation:移除语义含义,使图片成为纯装饰性内容并被屏幕阅读器忽略。 - img:将元素标识为向用户传达有意义信息的图片。
altstring描述图片内容的替代文本,帮助读者理解图片的含义。它对使用辅助技术的用户和视力正常的用户都非常有用。写得好的描述能让视障人士参与到非文本内容的获取中。屏幕阅读器遇到 s-image 时,会朗读此描述。如果图片加载失败(可能是由于网络连接较差),屏幕上会改为显示 alt。这样做的好处是,视力正常的买家能知道此处本应加载一张图片,同时作为替代,他们仍然可以获取文本内容。阅读编写替代文本时的注意事项以了解更多。
aspectRatio${number}` | `${number}/${number}` | `${number}/ ${number}` | `${number} /${number}` | `${number} / ${number}图片的宽高比。图片的渲染方式取决于 inlineSize 的值: - inlineSize="fill":会遵循宽高比,图片会占据所需的空间。 - inlineSize="auto":图片在加载完成前不会渲染,并且会忽略宽高比。例如,如果值设置为 50 / 100,getter 返回 50 / 100。如果值设置为 0.5,getter 返回 0.5 / 1。详细了解 aspect-ratio 属性。
borderBorderShorthand使用简写语法在单个属性中同时指定宽度、颜色和样式的边框。
borderColor"subdued" | "base" | "strong"使用设计系统色阶的边框颜色。设置后,会覆盖 border 属性中指定的颜色值。可从 subdued、base 或 strong 中选择,以匹配所需的视觉强调程度。
borderRadiusMaybeAllValuesShorthandProperty<BoxBorderRadii>使用设计系统圆角刻度设置元素各角的圆角程度。支持1 到 4 值语法,可为每个角指定不同的圆角半径。用于创建圆角或完全圆形的元素。
borderStyle"" | MaybeAllValuesShorthandProperty<BoxBorderStyles>所有边的边框样式,例如实线、虚线或点线。设置后,会覆盖 border 属性中指定的样式值。支持1 到 4 值语法,可为每条边指定不同的样式。
borderWidth"" | MaybeAllValuesShorthandProperty<"base" | "small-100" | "small" | "large" | "large-100" | "none">所有边的边框粗细。设置后,会覆盖 border 属性中指定的宽度值。支持1 到 4 值语法,可为每条边指定不同的宽度。
inlineSize"auto" | "fill"图片的显示内联宽度。 - fill:图片占据 100% 的可用内联尺寸。 - auto:图片以其原始尺寸显示。详细了解 width 属性。
loading"eager" | "lazy"图片的加载策略。 - eager:立即加载图片,无论其是否位于可见视口中。 - lazy:延迟加载图片,直到其接近距视口的指定距离。详细了解 loading 属性。
objectFit"contain" | "cover"图片在容器内适配时的缩放行为。 - contain:缩放图片使其适应容器,同时保持宽高比。整张图片可见,但可能留有空白。 - cover:缩放图片使其填满整个容器,同时保持宽高比。图片可能会被裁剪以适应容器。图片始终位于容器中央。详细了解 object-fit 属性。
sizesstring一组媒体条件及其对应的尺寸。
srcstring图片来源(远程 URL 或本地文件资源)。当图片正在加载或未提供 src 时,将渲染占位符。
srcSetstring一组图片源及其宽度或像素密度描述符。它会覆盖 src 属性。

Events ​

Event类型
errorCustomEvent
loadCustomEvent

在 <SImage> 上使用 @error 形式的监听器来监听这些事件。

基于 MIT 许可证发布。Vue 标志由 Evan You 设计,采用 CC BY-NC-SA 4.0 许可。