我想设置一个网格,在桌面设备上每行设置3w-50张卡片,在较小的设备上每行设置一张卡片。
但是,如果用户响应地使浏览器窗口变小,我希望卡片在桌面上保持相同的宽度,使它们之间的空间变小,而不是卡片本身变得更窄。
另外,是否有可能在桌面上使用w-50,而在较小的设备上使用w-75。
样本代码:
<div class="row">
<div class="col-sm-12 col-lg-4 " >
<div class="card w-50 ">
<div class="card-header">
Featured
</div>
<div class="card-body ">
<h5 class="card-title">Special title treatment</h5>
<p class="card-text">With supporting text below as a natural lead-in to additional content.</p>
<a href="#" class="btn btn-primary">Go somewhere</a>
</div>
</div>
</div>
<div class="col-sm-12 col-lg-4">
<div class="card w-50">
<div class="card-header">
Featured
</div>
<div class="card-body">
<h5 class="card-title">Special title treatment</h5>
<p class="card-text">With supporting text below as a natural lead-in to additional content.</p>
<a href="#" class="btn btn-primary">Go somewhere</a>
</div>
</div>
</div>
<div class="col-sm-12 col-lg-4 ">
<div class="card w-50">
<div class="card-header">
Featured
</div>
<div class="card-body">
<h5 class="card-title">Special title treatment</h5>
<p class="card-text">With supporting text below as a natural lead-in to additional content.</p>
<a href="#" class="btn btn-primary">Go somewhere</a>
</div>
</div>
</div>
</div>发布于 2019-05-14 21:05:23
简单回答:不
如果当用户调整窗口大小时,希望卡片保持不变,我认为.w-*是不可能的,因为这是整个行的相对百分比宽度为100%。除非允许行溢出,否则当用户调整窗口大小时,卡片将缩小。
出于同样的原因,我不知道为什么/怎么会想到在桌面设备上可以连续使用3张w-50卡。您可以在一行中拥有的w-50卡的最大数量仅为2: 100% / 50% = 2。
要使卡片尽可能地保持相同的宽度,您可能必须使用绝对单元,例如px或rem。
<div class="cards">
<div class="card"></div>
<div class="card"></div>
<div class="card"></div>
</div>在较小设备上每行一张卡
这里需要注意的是,在默认情况下,<div>设置为100%宽度。你可以在每一张卡片上加空白处,让它们看起来很好看:
.cards .card {
margin-bottom: 1rem;
}

大型设备上每行3张卡
我把较大的设备作为576 as和大。您可以在那里设置媒体断点,并将.cards显示为柔性盒。为里面的卡片设置一个固定的with。
@media (min-width: 576px) {
.cards {
display: flex;
flex-flow: row nowrap;
justify-content: space-between;
}
.cards .card {
width: 13rem;
}
}

https://jsfiddle.net/davidliang2008/woxsv4nm/24/
怎么才能达到合适的宽度呢?
但是,设置正确的卡片宽度是很棘手的。我的2美分:你可能想为不同的断点设置一个正确的宽度,这样在卡之间就不会有太多的空间。
如果允许溢出怎么办?
若要强制卡片宽度为50%,并将其中3张牌排在一列,则行必须溢出。默认情况下,如果没有足够的空间,柔性盒子程序就会缩小。要强制执行50%的宽度,必须通过设置flex-shrink: 0;来关闭该宽度
@media (min-width: 576px) {
.cards {
display: flex;
flex-flow: row nowrap;
justify-content: space-between;
}
.cards .card {
width: 50%;
flex-shrink: 0;
}
}https://jsfiddle.net/davidliang2008/woxsv4nm/26/

但是在这种情况下,你不可能在卡片之间还有空隙。
https://stackoverflow.com/questions/56136648
复制相似问题