比例調整
比例調整元件會調整其內容大小以符合所需的比例。
簡介
比例調整是一個包裝元件,用於快速調整內容大小,使其符合您偏好的寬高比。媒體內容(如圖片)可以根據 CSS object-fit
屬性進行拉伸、調整大小和裁剪。
基本用法
import AspectRatio from '@mui/joy/AspectRatio';
比例調整元件會包裝要調整大小的內容。要調整大小的元素必須是第一個直接子元素。預設比例為 16/9
。
Solid
Soft
Outlined
Plain
比例
使用 ratio
屬性來變更寬高比,遵循 width/height
模式。例如,以下示範使用 4/3
的比例,這是預設 16/9
的常見替代方案
物件 fit
當比例調整元件內的內容是圖片或影片時,您可以使用 objectFit
屬性來控制其調整大小的方式。
此屬性讓您可以存取與 CSS object-fit
屬性相關聯的所有值:cover
(預設)、contain
、fill
、scaleDown
、initial
、inherit
和 none
。
標題
卡片的描述。
最小和最大高度
使用 minHeight
和 maxHeight
屬性來設定內容高度的下限和上限。當比例調整元件包裝動態寬度內容時,這非常有用,如下面的示範所示
在彈性容器列中使用
當比例調整元件是彈性容器 row
的子元件時,使用 flex-basis
來設定內容的理想寬度
優勝美地國家公園
美國加州
預設情況下,比例調整元件將保留提供的寬高比。如果您希望比例調整元件填滿垂直空間,請將 flex
屬性設定為 true
Lorem ipsum 是圖形中常用的預留位置文字。
與 Next.js Image 搭配使用
比例調整元件可以與 Next.js Image 元件作為子元件一起使用。Image 應始終包含 layout="fill"
屬性—否則它需要 height
和 width
值,這會破壞比例調整元件的目的。
import Image from 'next/image';
import AspectRatio from '@mui/joy/AspectRatio';
import mountains from '../public/mountains.jpg';
function App() {
return (
<AspectRatio variant="outlined" ratio="1" objectFit="cover">
{/* only layout="fill" makes sense for using with AspectRatio */}
<Image alt="Mountains" src={mountains} layout="fill" placeholder="blur" />
</AspectRatio>
);
}
與圖示一起使用
比例調整元件可以是建立圖示正方形容器的便利工具。
夜景
421 萬次觀看
湖景
474 萬次觀看
山景
398 萬次觀看
列表堆疊
這是一個如何將比例調整與列表元件搭配使用的簡單說明
夜景
421 萬次觀看
湖景
474 萬次觀看
山景
398 萬次觀看
解剖結構
比例調整元件由一個根 <div>
和一個巢狀在內部的內容 <div>
組成;子元件會被賦予一個 data-first-child
屬性以用於樣式設定
<div class="MuiAspectRatio-root">
<div class="MuiAspectRatio-content">
<some-element data-first-child>
<!-- Aspect Ratio contents -->
</some-element>
</div>
</div>