Карта Bootstrap 4 не отвечает, она просто выравнивает ее в 1 прямой ряд

Карта Bootstrap 4 не отвечает, она просто выравнивает ее в один прямой ряд. Как мне сделать его отзывчивым? когда я изменяю размер браузера, карты не перестраиваются, они остаются в виде одной строки в метеоре с реакцией. я хочу сделать так, чтобы он перестраивался и переходил к следующей строке, когда я изменяю ширину браузера.

введите здесь описание изображения

BrowseCourseCard = React.createClass ({

    propTypes: {
        courseId: React.PropTypes.string.isRequired,
        title: React.PropTypes.string.isRequired,
        shortDes: React.PropTypes.string.isRequired,
    },

    render() {

        const courseLink = "/browsecourses/" + this.props.courseId

        return(
            <div className="card">
                <img className="card-img-top" src="img/storeImage.png" alt="Card image cap"/>
                <div>
                    <h4 className="card-title">{this.props.title}</h4>
                    <p className="card-text">{this.props.shortDes}</p>
                    <a className="btn btn-primary" href={courseLink}> More Details &raquo; </a>
                    <p className="card-text"><small className="text-muted"> Downloaded 5003 times </small></p>
                </div>
            </div>
        )
    }
})

BrowseCourses = React.createClass({

    mixins: [ReactMeteorData],

    getMeteorData() {
        const sub = Meteor.subscribe('getAllCourses')

        return {
            ready: sub.ready(),
            allCourses: Col_AllCourses.find().fetch()
        }
    },

    render() {

        if (!this.data.ready) {
          return <div>Loading...</div>
        }

        console.log(this.data.allCourses)
        let displayCourses = this.data.allCourses.map((data) => {
            return <BrowseCourseCard key={data._id} courseId={data._id} title={data.title} shortDes={data.short_des}/>
        })

        return (
            <div className="container-fluid">
                <div className="card-deck-wrapper">
                    <div className="card-deck">
                        {displayCourses}
                    </div>
                </div>
            </div>
        )
    }
})

person phongyewtong    schedule 25.02.2016    source источник


Ответы (1)


Я думаю, что вы не можете, потому что вы используете класс card-desk. Этот класс устанавливает display: table. Предыдущее означает, что вы получили сложенную карту или display: table и ничего между ними.

Описаны некоторые приемы, которые изменяют display: table на display: block с display: inline-block. См.: Можно ли сделать макет display:table-cell отзывчивым ?

Поэтому подумайте о том, чтобы обернуть свои карты в «нормальную» сетку:

<div class="container"> 


  <div class="row">
    <div class="card col-xs-12 col-md-6 col-lg-3">
      <img class="card-img-top" data-src="..." alt="Card image cap">
      <div class="card-block">
        <h4 class="card-title">Card title</h4>
        <p class="card-text">This is a longer card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.</p>
        <p class="card-text"><small class="text-muted">Last updated 3 mins ago</small></p>
      </div>
    </div>
    <div class="card col-xs-12 col-md-6 col-lg-3">
      <img class="card-img-top" data-src="..." alt="Card image cap">
      <div class="card-block">
        <h4 class="card-title">Card title</h4>
        <p class="card-text">This card has supporting text below as a natural lead-in to additional content.</p>
        <p class="card-text"><small class="text-muted">Last updated 3 mins ago</small></p>
      </div>
    </div>
     <!-- Add the extra clearfix for only the required viewport -->
    <div class="clearfix hidden-sm-down hidden-lg-up"></div>
    <div class="card col-xs-12 col-md-6 col-lg-3">
      <img class="card-img-top" data-src="..." alt="Card image cap">
      <div class="card-block">
        <h4 class="card-title">Card title</h4>
        <p class="card-text">This is a wider card with supporting text below as a natural lead-in to additional content. This card has even longer content than the first to show that equal height action.</p>
        <p class="card-text"><small class="text-muted">Last updated 3 mins ago</small></p>
      </div>
    </div>
    <div class="card col-xs-12 col-md-6 col-lg-3">
      <img class="card-img-top" data-src="..." alt="Card image cap">
      <div class="card-block">
        <h4 class="card-title">Card title</h4>
        <p class="card-text">This is a wider card with supporting text below as a natural lead-in to additional content. This card has even longer content than the first to show that equal height action.</p>
        <p class="card-text"><small class="text-muted">Last updated 3 mins ago</small></p>
      </div>
    </div>
    </div>

</div>

</div>

Приведенный выше код не гарантирует, что ваши карты будут иметь одинаковую высоту, вы можете установить высоту карты или использовать Сброс адаптивного столбца.

В качестве альтернативы вы можете попробовать .card-columns, который позволяет изменить количество столбцов. с медиа-запросами:

.card-columns {
-webkit-column-count: 2;
-moz-column-count: 2;
column-count: 2;
} 
@media (min-width: 992px)  {
-webkit-column-count: 4;
-moz-column-count: 4;
column-count: 4;
}
person Bass Jobsen    schedule 25.02.2016