Это связано с выравниванием по умолчанию, которое является растяжением.Он отлично работает, когда оба элемента находятся в одной строке, но при переносе у вас будет 2 строки одинаковой высоты, и каждый элемент будет растянут внутри, что сделает вас первым элементом, у которого будет половина высоты контейнера:
Чтобы избежать этого, вы можете изменить выравнивание на маленьком экране, учитывая align-content-*-*
(https://getbootstrap.com/docs/4.2/utilities/flex/#align-content)
. Мы делаем выравнивание равным flex-start
, которое мы изменяем на stretch
в точке останова md
:
html,body {
height: 100%;
}
<link rel="stylesheet" type="text/css" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.css">
<div class="container-fluid h-100">
<div class="row h-100 align-content-start align-content-md-stretch">
<div class="col-12 col-md-2 p-0 bg-primary">a</div>
<div class="col bg-faded py-3">c</div>
</div>
</div>
Вот еще один вопрос с более подробной информацией, чтобы лучше понять, что происходит: дополнительное пространство при центрировании элементов с помощью flexbox