如何限制卡片组的列数?

How to limit number of columns of card-deck?

这是我的代码,我要实现的只是连续四列,不多也不少,但是目前卡的数量是1-10,一直压缩到10。

<div class="card-deck-wrapper">
    <div class="card-deck">
        @foreach($resource->projects as $project)
            <div class="card card-project">
                bla bla (every card let's say is like this)
            </div>
        @endforeach
    </div>
</div>

您可以使用 .cards-columns 限制一行中的卡片数量

<div class="card-columns">
    <div class="card-deck-wrapper">
         <div class="card-deck">
            @foreach($resource->projects as $project)
                <div class="card card-project">
                    bla bla (every card let's say is like this)
                </div>
            @endforeach
        </div>
    </div>
</div>

在css中:

.card-columns {
    @include media-breakpoint-only(lg) {
    column-count: 4;
}

更多https://v4-alpha.getbootstrap.com/components/card/#decks

作为explained in the docs, Card layouts (decks, groups and columns)...

"For the time being, these layout options are not yet responsive."

因此,您无法限制 card-deck 中每行的卡片数。您可以改用网格列,如果您需要卡片等高,则可以使用 flexbox..

  <div class="row">
          <div class="col-sm-3">
                <div class="card">
                  ...
                </div>
          </div>
          <div class="col-sm-3">
                <div class="card">
                  ...
                </div>
          </div>
          ... {repeat col-sm-3}..
  </div>

http://codeply.com/go/AP1MpYKY2H

自 Bootstrap 4 alpha 6 起: Flexbox 现在是默认设置,因此不再需要额外的 CSS。使用 h-100 使卡片填满列的高度。

https://www.codeply.com/go/rHe6rq5L76(更新了 Bootstrap 4.1 的演示)

<div class="card-deck">
  <div class="card">
    <img class="card-img-top" src="..." alt="Card image cap">
    <div class="card-body">
      <h5 class="card-title">Card title</h5>
      <p class="card-text">This is a wider 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>

在名为 card-deck 的部分下添加您的卡片,然后使用这些 css 属性: 只是一个例子。根据需要编辑值。

.card-deck{
    margin-top: 10px;
    margin-left: auto;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    grid-gap: .5rem;
}

参考1:https://www.w3schools.com/cssref/pr_grid-template-columns.asp 参考资料2:https://developer.mozilla.org/en-US/docs/Web/CSS/grid-template-columns

对于 typescript 和组件驱动的应用程序,有一个基于 Clin John Xavier 推荐代码的优雅解决方案:

import { StyledCardDeck, } from "./style";
<StyledCardDeck>
  <StyledCard>
      ...// card content here
  </StyledCard>
</StyledCardDeck>

然后在你的 style.tsx:

export const StyledCardDeck = styled(({ ...rest }) => <CardDeck {...rest} 
/>)`
  margin-top: 10px;
  margin-left: auto;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  grid-gap: 0.5rem;
`;