【问题标题】:Bootstrap 4 card not responsive, it just align it in 1 straight rowBootstrap 4 卡没有响应,它只是将其对齐 1 行
【发布时间】:2016-06-07 20:07:04
【问题描述】:

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>
        )
    }
})

【问题讨论】:

    标签: twitter-bootstrap meteor reactjs bootstrap-4


    【解决方案1】:

    我认为你不能因为你正在使用card-desk 类。此类设置display: table。前面的意思是你得到了叠牌或display: table,两者之间什么都没有。

    描述了一些技术,将display: table 更改为display: blockdisplay: inline-block。见:Is it possible to make display:table-cell layout responsive?

    所以考虑将你的卡片包装在一个“正常”的网格中:

    <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>
    

    上面的代码不保证你的卡片高度相等,你可以设置卡片的高度,或者使用Responsive column resets

    您也可以尝试.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;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-06-10
      • 2021-03-28
      • 1970-01-01
      • 1970-01-01
      • 2019-12-12
      • 2021-02-08
      • 2020-05-28
      相关资源
      最近更新 更多