2 / 1
import { AspectRatio, Center } from "@chakra-ui/react"
const Demo = () => {
return (
<AspectRatio bg="bg.muted" ratio={2 / 1}>
<Center fontSize="xl">2 / 1</Center>
</AspectRatio>
)
}
用法
import { AspectRatio } from "@chakra-ui/react"
<AspectRatio>
<iframe
title="naruto"
src="https://www.youtube.com/embed/QhBnZ6NPOY0"
allowFullScreen
/>
</AspectRatio>
示例
图片
下面是如何嵌入一个宽高比为4:3的图片。
import { AspectRatio, Image } from "@chakra-ui/react"
const Demo = () => {
return (
<AspectRatio maxW="400px" ratio={4 / 3}>
<Image src="https://bit.ly/naruto-sage" alt="naruto" objectFit="cover" />
</AspectRatio>
)
}
视频
要嵌入具有特定宽高比的视频,请使用带有指向视频链接的 src
属性的 iframe。
import { AspectRatio } from "@chakra-ui/react"
const Demo = () => {
return (
<AspectRatio maxW="560px" ratio={1}>
<iframe
title="naruto"
src="https://www.youtube.com/embed/QhBnZ6NPOY0"
allowFullScreen
/>
</AspectRatio>
)
}
谷歌地图
下面是如何使用 AspectRatio
嵌入响应式谷歌地图。
import { AspectRatio } from "@chakra-ui/react"
const Demo = () => {
return (
<AspectRatio ratio={16 / 9}>
<iframe src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d3963.952912260219!2d3.375295414770757!3d6.5276316452784755!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x103b8b2ae68280c1%3A0xdc9e87a367c3d9cb!2sLagos!5e0!3m2!1sen!2sng!4v1567723392506!5m2!1sen!2sng" />
</AspectRatio>
)
}
响应式
这是一个将响应式宽高比应用于盒子的示例。
盒子
import { AspectRatio } from "@chakra-ui/react"
import { DecorativeBox } from "compositions/lib/decorative-box"
export const AspectRatioResponsive = () => (
<AspectRatio maxWidth="300px" ratio={{ base: 1, md: 16 / 9 }}>
<DecorativeBox>Box</DecorativeBox>
</AspectRatio>
)
属性
这些属性可以传递给 AspectRatio
组件。
属性 | 默认值 | 类型 |
---|---|---|
ratio | ConditionalValue<number> 盒子的宽高比。常见值为:`21/9`、`16/9`、`9/16`、`4/3`、`1.85/1` |