原因似乎是
card-columns
. 这些列是使用CSS列制作的,并改变其中内容的显示,例如,下拉列表似乎会导致它们到处跳转。
我创建了一个更简单的代码版本来尝试和演示这一点。
我添加了一个CSS的注释块来覆盖它,以证明这是原因。如果您取消注释它工作(使用flexbox)。
所以,我建议用
card-column
,则使用引导网格。
/** Click that version 1 dropdowns.
The layout jumps around.
I think that's because of the logic behind the scenes of CSS columns.
Uncomment the below to prove that columns is the cause.
Don't actually do it in your code.
Instead, consider using the bootstrap grid instead of card columns.
**/
/* .card-columns {
column-count: auto !important;
display: flex;
flex-wrap: wrap;
}
.card-columns > * {
flex: 0 1 33.3%;
} */
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
<h2>Version 1 - CSS Columns</h2>
<div class="card-columns">
<div class="card">
<div class="row">
<div class="col-md-8">
<div class="btn-group">
<button class="btn btn-secondary btn-sm dropdown-toggle" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Small button
</button>
<div class="dropdown-menu">
<a href="#" class="dropdown-item">item</a>
<a href="#" class="dropdown-item">item</a>
<a href="#" class="dropdown-item">item</a>
</div>
</div>
</div>
</div>
</div>
<div class="card">
<div class="row">
<div class="col-md-8">
<div class="btn-group">
<button class="btn btn-secondary btn-sm dropdown-toggle" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Small button
</button>
<div class="dropdown-menu">
<a href="#" class="dropdown-item">item</a>
<a href="#" class="dropdown-item">item</a>
<a href="#" class="dropdown-item">item</a>
</div>
</div>
</div>
</div>
</div>
<div class="card">
<div class="btn-group">
<button class="btn btn-secondary btn-sm dropdown-toggle" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Small button
</button>
<div class="dropdown-menu">
<a href="#" class="dropdown-item">item</a>
<a href="#" class="dropdown-item">item</a>
<a href="#" class="dropdown-item">item</a>
</div>
</div>
</div>
</div>
<h2>Version 2 - Grid</h2>
<div class="row">
<div class="col-md-4">
<div class="card">
<div class="row">
<div class="col-md-8">
<div class="btn-group">
<button class="btn btn-secondary btn-sm dropdown-toggle" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Small button
</button>
<div class="dropdown-menu">
<a href="#" class="dropdown-item">item</a>
<a href="#" class="dropdown-item">item</a>
<a href="#" class="dropdown-item">item</a>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-4">
<div class="card">
<div class="row">
<div class="col-md-8">
<div class="btn-group">
<button class="btn btn-secondary btn-sm dropdown-toggle" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Small button
</button>
<div class="dropdown-menu">
<a href="#" class="dropdown-item">item</a>
<a href="#" class="dropdown-item">item</a>
<a href="#" class="dropdown-item">item</a>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-4">
<div class="card">
<div class="row">
<div class="col-md-8">
<div class="btn-group">
<button class="btn btn-secondary btn-sm dropdown-toggle" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Small button
</button>
<div class="dropdown-menu">
<a href="#" class="dropdown-item">item</a>
<a href="#" class="dropdown-item">item</a>
<a href="#" class="dropdown-item">item</a>
</div>
</div>
</div>
</div>
</div>
</div>
</div>