如何限制卡片组的列数?
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;
}
作为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;
`;
这是我的代码,我要实现的只是连续四列,不多也不少,但是目前卡的数量是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;
}
作为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;
`;