关于 Ratios(比率)
使用比率帮助器来管理外部内容的长宽比,例如<iframe>
,<embed>
,<video>
,和<object>
。 还可用于任何标准HTML子元素(例如,<div>
或<img>
)。 样式是从父级.ratio
类直接应用于子级的。
例子
用.ratio
和长宽比类将所有嵌入的内容(如<iframe>
)包裹在父元素中。由于我们的通用选择器.ratio > *
,直接的子元素的大小会自动调整。
<div class="ratio ratio-16x9">
<iframe src="https://www.youtube.com/embed/zpOULjyy-n8?rel=0" title="YouTube video" allowfullscreen></iframe>
</div>
长宽比(Aspect ratios)
长宽比可以用修改器类来定制。默认情况下,提供以下比例类。
<div class="ratio ratio-1x1">
<div>1x1</div>
</div>
<div class="ratio ratio-4x3">
<div>4x3</div>
</div>
<div class="ratio ratio-16x9">
<div>16x9</div>
</div>
<div class="ratio ratio-21x9">
<div>21x9</div>
</div>
自定义比率(Custom ratios)
每个.ratio-*
类在选择器中包括一个CSS自定义属性(或CSS变量)。你可以覆盖这个CSS变量,通过一些快速的数学运算,在飞行中创建自定义长宽比。
例如,要创建一个2x1
的长宽比,在.ratio
上设置--bs-aspect-ratio: 50%
。
<div class="ratio" style="--bs-aspect-ratio: 50%;">
<div>2x1</div>
</div>
这个CSS变量使得修改跨断点的长宽比变得很容易。以下是4x3的开始,但在中等断点处变成了自定义的2x1。
.ratio-4x3 {
@include media-breakpoint-up(md) {
--bs-aspect-ratio: 50%; // 2x1
}
}
<div class="ratio ratio-4x3">
<div>4x3, then 2x1</div>
</div>
Sass map
在_variables.scss
中,你可以改变你想使用的长宽比。这是我们默认的$ratio-aspect-ratios
地图。根据你的需要修改地图,然后重新编译你的Sass来使用它们。
$aspect-ratios: (
"1x1": 100%,
"4x3": calc(3 / 4 * 100%),
"16x9": calc(9 / 16 * 100%),
"21x9": calc(9 / 21 * 100%)
);