AspectRatio 宽高比

以正有限比例为媒体或预览内容预留稳定版面。

Beta

示例

直接操作示例,查看组件在具体任务中的状态与反馈。

正有限比例可稳定预留版面;媒体加载、裁剪与替代内容仍由宿主处理。
16:9 预览
16:9 本地预览
1:1 缩略图
1:1 缩略图
1:1 比例适合头像、封面和缩略图等正方形媒体。
封面占位
1:1
不同比例在容器缩放时保持稳定,避免媒体加载引起布局跳动。
16:9 视频
16:9 视频
4:3 预览
4:3 预览

使用建议

比例必须来自内容合同

视频预览常用 16:9,方形缩略图使用 1;组件只接受大于零的有限数字。

为媒体提供替代信息

图片和视频仍需由宿主提供 alt、字幕或邻近说明,比例容器本身不产生媒体语义。

先决定裁剪再放入内容

根据业务选择 contain 或 cover,并验证关键区域不会因窄屏裁剪而丢失。

引入方式

从已验证的公开子路径导入组件;全局样式接入方式见安装指南。

import { BaseAspectRatio } from '@inf-monkeys-tech/monkeys-design/components/base';

当前限制

  • AspectRatio 只设置 CSS aspect-ratio,不负责媒体加载、object-fit、裁剪焦点、加载失败回退或替代文本。
  • Automated axe checks and deterministic browser visual evidence are pending T17/T23.
export interface BaseAspectRatioProps
  extends Omit<
    HTMLAttributes<HTMLDivElement>,
    'children' | 'className' | 'style'
  > {
  children?: ReactNode;
  ratio?: number;
  appearance?: BaseAppearance;
  className?: string;
  classNames?: BaseAspectRatioClassNames;
  style?: CSSProperties;
}
属性说明类型默认值
children在 BaseAspectRatio 内渲染的子内容;支持渲染函数时以对应的 Props 类型为准。ReactNode
ratio内容区域的宽高比,例如 16 / 9。number
appearance覆盖组件使用的外观令牌或局部样式配置。BaseAppearance
className追加到组件根元素的 CSS 类名。string
classNames按组件公开的结构插槽分别追加 CSS 类名。BaseAspectRatioClassNames
style追加到组件根元素的内联样式。CSSProperties