为啥我在 Bootstrap 4 中的 cols flex-grow 没有对齐?
Posted
技术标签:
【中文标题】为啥我在 Bootstrap 4 中的 cols flex-grow 没有对齐?【英文标题】:Why do my cols flex-grow in Bootstrap 4 are not aligned?为什么我在 Bootstrap 4 中的 cols flex-grow 没有对齐? 【发布时间】:2020-01-29 22:45:26 【问题描述】:使用 Bootstrap 4,我希望我的列在多行中对齐。
如果我设置行和列,它工作得很好,但如果我的一个列需要用flex-grow:2
安装 2 个插槽,它会在行之间产生一点间隙。我尝试了所有 flex 的东西都没有成功。
在这里你可以有链接来尝试它。我创建了 2 个案例,一个带有 div,另一个(我关心的那个)带有一个带有行类的表。
Link on w3schools
.col
border:1px solid red;
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap Example</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
<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>
</head>
<body>
<div class="container">
<div class="row">
<div class="col" style="flex-grow:2.08">1</div>
<div class="col">2</div>
</div>
<div class="row">
<div class="col">1</div>
<div class="col">2</div>
<div class="col">3</div>
</div>
</div>
<br/>
<div class="container">
<table class="table">
<thead>
<tr class="row">
<th class="col">Firstname</th>
<th class="col">Lastname</th>
<th class="col">Email</th>
</tr>
</thead>
<tbody>
<tr class="row">
<td class="col" style="flex-grow:2">John (2.07 in flex-grow works in 1080p...)</td>
<td class="d-none">Doe</td>
<td class="col">john@example.com</td>
</tr>
<tr class="row">
<td class="col">Mary</td>
<td class="col">Moe</td>
<td class="col">mary@example.com</td>
</tr>
<tr class="row">
<td class="col">July</td>
<td class="col">Dooley</td>
<td class="col">july@example.com</td>
</tr>
</tbody>
</table>
</div>
</body>
</html>
在第一个示例中,您可以看到“1”/“2”和“2”/“3”之间有一点差距,在第二个示例中也是如此。
我真的需要使用 flex-grow,因为在我的完整代码中,我的一些 TD 在 PX 中具有固定宽度,而其他 TD 需要适应空白空间但宽度相同(如果我设置了 flex-grow,则需要两倍: 2)
【问题讨论】:
请将您的代码发布到问题中,而不是站外链接。如果该链接都消失了,那么这个问题对未来的访问者将毫无用处。请阅读:How to create a Minimal, Complete, and Verifiable example 【参考方案1】:W3 学校似乎也注意到了一个问题,因此他们的“2.07 in flex-grow...”。
我不确定为什么会发生这种情况,但一种解决方法是向这些 td 添加一个类,然后在不同的屏幕尺寸下为该类添加媒体查询。
例如:
@media screen and (min-width: 992px)
.alter-flex
flex-grow: 2.09;
【讨论】:
以上是关于为啥我在 Bootstrap 4 中的 cols flex-grow 没有对齐?的主要内容,如果未能解决你的问题,请参考以下文章
Bootstrap 4 中的列排序,带有推/拉和 col-md-12
如何将 Bootstrap 4 中的 SVG 垂直对齐到行高?
为啥 Bootstrap 不允许我在 ASP.NET MVC 页面中的下拉菜单上设置边距?