我正在使用Bootstrap 4.我在中型和大型显示器上创建了一个包含3列,每列大小为4的行。每张卡中的内容可能大小不同,但我仍然希望每张卡的长度相等。
我没有使用卡组/套牌,因为它们没有响应,我希望这些卡在小/ xs显示器上占用所有12行。
以下是与卡片相关的代码片段。我还有关于Plunker的项目的实时视图:http://plnkr.co/edit/RLQaA6knYi69qc4vLr6j?p=info。如果您在大型显示器上打开项目,则卡的大小不同。
Bootstrap 4表示如果没有提供宽度,默认情况下卡片会拉伸以填充其容器的整个宽度。假设它填充了包含卡的父容器的整个宽度(即在下面的情况下是col-md-4的div),我错了吗?
如果我错了,我该如何让3张卡水平拉伸以填充其中以及垂直拉伸到相同尺寸的列的整个宽度?我试图添加flex-column flex-grow
,但只是水平但不垂直。处理这个问题的最佳方法是什么?
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css">
<main>
<div id="content-container" class="container">
<div class="row">
<div class="col-12">
<h2 class="display-5 text-center text-white text-uppercase">Portfolio</h2>
</div>
</div>
<div class="row">
<div class="col-md-4 d-flex align-items-stretch">
<div class="card ">
<img class="card-img-top" src=".../100px200/" alt="Card image cap">
<div class="card-footer">Featured</div>
</div>
</div>
<div class="col-md-4 d-flex align-items-stretch">
<div class="card ">
<img class="card-img-top" src=".../100px200/" alt="Card image cap">
<div class="card-footer">Footer</div>
</div>
</div>
<div class="col-md-4 d-flex align-items-stretch">
<div class="card ">
<img class="card-img-top" src=".../100px200/" alt="Card image cap">
<div class="card-body">
<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>
</div>
</div>
</div>
</div>
</div>
</main>
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js"></script>
我通过向每个card
div添加一个类并将宽度设置为100%来实现此功能。我仍然不确定这是否是正确的方法,因为我假设卡会自动执行此操作。
答案 0 :(得分:0)
您的列在移动设备上的宽度为100%
。但是这些列中的卡片仍然具有auto
的宽度。
因此,您可以为每张卡添加the w-100
class。
请检查结果。这是你想要实现的目标吗?
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css">
<main>
<div id="content-container" class="container">
<div class="row">
<div class="col-12">
<h2 class="display-5 text-center text-white text-uppercase">Portfolio</h2>
</div>
</div>
<div class="row">
<div class="col-md-4 d-flex align-items-stretch">
<div class="card w-100">
<img class="card-img-top" src=".../100px200/" alt="Card image cap">
<div class="card-footer">Featured</div>
</div>
</div>
<div class="col-md-4 d-flex align-items-stretch">
<div class="card w-100">
<img class="card-img-top" src=".../100px200/" alt="Card image cap">
<div class="card-footer">Footer</div>
</div>
</div>
<div class="col-md-4 d-flex align-items-stretch">
<div class="card w-100">
<img class="card-img-top" src=".../100px200/" alt="Card image cap">
<div class="card-body">
<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>
</div>
</div>
</div>
</div>
</div>
</main>
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js" ></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js"></script>
要一次管理所有卡的属性,您可以将自己的类分配给包含所有这些卡的行。 Bootstrap不禁止使用您自己的CSS。
.row-whith-wide-cards .card {
width: 100%;
}
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css">
<main>
<div id="content-container" class="container">
<div class="row">
<div class="col-12">
<h2 class="display-5 text-center text-white text-uppercase">Portfolio</h2>
</div>
</div>
<div class="row row-whith-wide-cards">
<div class="col-md-4 d-flex align-items-stretch">
<div class="card">
<img class="card-img-top" src=".../100px200/" alt="Card image cap">
<div class="card-footer">Featured</div>
</div>
</div>
<div class="col-md-4 d-flex align-items-stretch">
<div class="card">
<img class="card-img-top" src=".../100px200/" alt="Card image cap">
<div class="card-footer">Footer</div>
</div>
</div>
<div class="col-md-4 d-flex align-items-stretch">
<div class="card">
<img class="card-img-top" src=".../100px200/" alt="Card image cap">
<div class="card-body">
<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>
</div>
</div>
</div>
</div>
</div>
</main>
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js" ></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js"></script>