Изменение размера элемента столбца Bootstrap при переходе к новой строке

Кажется простым, но я не могу заставить эти колонки играть хорошо.

https://jsfiddle.net/talgia/xgjt15p3/5/

<html>
<head>
 <!-- Latest compiled and minified CSS -->
<link rel = "stylesheet" href = "https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">

<!-- jQuery library -->
<script src = "https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<!-- Latest compiled JavaScript -->
<script src = "https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> 
</head>
<body>

<div class = "container-fluid bottompad">
    <div class = "row">
        <h2 class = "moduleHeading">
            Phasellus ut blandit eros</h2>
        <div class = "col-lg-3 col-sm-6">
            <div style = "padding: 5px; width:100%;">
                <img alt = "photo1" class = "img-responsive" src = "/sites/default/files/Career_square.jpg" style = "width: 100%;" />
                <h3 style = "font-size: 30px; line-height: 30px; margin-bottom: 18px; padding-bottom: 20px; border-bottom: 6px solid;">
                    Sed interdum</h3>
                <p>Phasellus ut blandit eros, et congue massa. Ut lobortis elementum tortor sed interdum.Phasellus ut blandit eros, et congue massa. Ut lobortis elementum tortor sed interdum.Phasellus ut blandit eros, et congue massa. Ut lobortis elementum tortor sed interdum.Phasellus ut blandit eros, et congue massa. Ut lobortis elementum tortor sed interdum. Praesent egestas nibh at turpis tempor ultrices. </p>
                <div>
                    <a class = "btn-primary" href = "/node/63">Learn more</a></div>
            </div>
        </div>
        <div class = "col-lg-3 col-sm-6">
            <div style = "padding: 5px; width:100%;">
                <img alt = "photo2" class = "img-responsive" src = "/sites/default/files/Hope_square.jpg" style = "width: 100%;" />
                <h3 style = "font-size: 30px; line-height: 30px; margin-bottom: 18px; padding-bottom: 20px; border-bottom: 6px solid;">
                    Ut lobortis elementum</h3>
                <p>Phasellus ut blandit eros, et congue massa. Ut lobortis elementum tortor sed interdum.Phasellus ut blandit eros, et congue massa. Ut lobortis elementum tortor sed interdum.Phasellus ut blandit eros, et congue massa. Ut lobortis elementum tortor sed interdum.</p>
                <div>
                    <a class = "btn-primary" href = "/node/62">Learn more</a></div>
            </div>
        </div>
        <div class = "col-lg-3 col-sm-6">
            <div style = "padding: 5px; width:100%;">
                <img alt = "photo3" class = "img-responsive" src = "/sites/default/files/guardian_square.jpg" style = "width: 100%;" />
                <h3 style = "font-size: 30px; line-height: 30px; margin-bottom: 18px; padding-bottom: 20px; border-bottom: 6px solid;">
                    Ut blandit eros</h3>
                <p>Phasellus ut blandit eros, et congue massa. Ut lobortis elementum tortor sed interdum.</p>
                <div>
                    <a class = "btn-primary" href = "/node/124">Learn more</a></div>
            </div>
        </div>
        <div class = "col-lg-3 col-sm-6">
            <div style = "padding: 5px; width:100%;">
                <img alt = "photo4" class = "img-responsive" src = "/sites/default/files/rebound_square.jpg" style = "width: 100%;" />
                <h3 style = "font-size: 30px; line-height: 30px; margin-bottom: 18px; padding-bottom: 20px; border-bottom: 6px solid;">
                    Elementum tortor</h3>
                <p>Phasellus ut blandit eros, et congue massa. Ut lobortis elementum tortor sed interdum.</p>
                <div>
                    <a class = "btn-primary" href = "/node/123">Learn more</a></div>
            </div>
        </div>
    </div>
</div>


</body>
</html>

В представлении экрана «md» столбец переносится на новую строку в зависимости от размера сопроводительного текста в указанных выше столбцах. Как я могу выровнять эти элементы столбца независимо от длины текста указанного выше элемента?

Вот фотография, которая упрощает то, что я хочу сделать. См. Jsfiddle, чтобы узнать о проблеме, с которой я столкнулся. элемент 4 перемещается на новую строку в виде MD, а элемент 3 занимает его место из-за высоты вышеупомянутого элемента.

Изменение размера элемента столбца Bootstrap при переходе к новой строке

Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
0
0
54
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Причина этой проблемы в том, что содержимое внутри столбцов имеет разную высоту. Вот статья, которая объясняет это: https://medium.com/wdstack/varying-column-heights-in-bootstrap-4e8dd5338643

Проблема с высотой начальной загрузки возникает из-за того, что столбцы (col--) используйте float: left. Когда столбец «перемещается», он исключается из обычного потока документа. Он смещается влево или вправо, пока не коснется края содержащего его ящика. Итак, если у вас неравная высота столбцов, правильным поведением будет их штабелирование на ближайшей стороне.

Я думаю, что самое простое - сделать все столбцы одинаковой высоты. На мой взгляд, Flexbox - лучший способ сделать это, поскольку макет будет гибким независимо от содержимого, которое у вас есть внутри контейнера (Bootstrap 4 уже использует flexbox). Вы также можете просто установить фиксированное значение высоты для всех столбцов (в статье предлагается несколько способов сделать это). В статье также есть еще пара подходов.

Спасибо за ссылку, эта статья очень помогла.

nastalgia 09.08.2018 20:24

Благодаря приведенному выше ответу я использовал несколько строк CSS.

.row.display-flex {
  display: flex;
  flex-wrap: wrap;
}
.row.display-flex > [class*='col-'] {
  display: flex;
  flex-direction: column;
}

и добавил класс display-flex к моим строкам, чтобы обеспечить одинаковую высоту во всех столбцах для облегчения выравнивания. Вы можете увидеть это в действии по этой ссылке jsfiddle. https://jsfiddle.net/talgia/xgjt15p3/38/

Спасибо, Ильзе Гарсия!

Другие вопросы по теме