Да, это возможно, но не с CSS & Bootstrap. Существует обходной путь, и вы можете использовать <svg>
для поддержания соотношения ваших столбцов.
Вам необходимо поместить пустой столбец <svg>
внутри столбца для поддержания соотношения. Используйте его с bootstrap class invisible
, чтобы убедиться, что он никогда не виден. Поместите ваш контент, используя position:absolute
.
Для отношения 3: 2 установите viewBox="0 0 3 2"
и т. Д.
Однако здесь есть одна загвоздка. Если у вас есть макет с другим размером столбца, например col-3
и col-6
, вам нужно настроить viewBox=""
для каждого размера. Например, для col-3
используйте viewBox="0 0 1 1"
, а для col-6
необходимо использовать viewBox="0 0 2 1"
для поддержания отношения col-3
. Помните - в bootstrap столбцы растянуты до одинакового размера.
Посмотрите мою демонстрацию.
/*DEMO*/body{padding:3rem}
.content{
position:absolute;
top:0;
right:0;
bottom:0;
left:0;
overflow:hidden;
}
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css">
<div class="row border">
<div class="col-3 border border-primary">
<svg class="invisible" viewBox="0 0 1 1"></svg>
<div class="content">Lorem Ipsum</div>
</div>
<div class="col-3 border border-danger">
<svg class="invisible" viewBox="0 0 1 1"></svg>
<div class="content">Lorem Ipsum</div>
</div>
<div class="col-6 border border-success">
<svg class="invisible" viewBox="0 0 2 1"></svg>
<div class="content">Lorem Ipsum</div>
</div>
</div>