如何在 Bootstrap 4 中的图像覆盖卡上垂直对齐?

Posted

技术标签:

【中文标题】如何在 Bootstrap 4 中的图像覆盖卡上垂直对齐?【英文标题】:How to vertically align on an image overlay card in Bootstrap 4? 【发布时间】:2019-09-24 21:38:39 【问题描述】:

我正在尝试将 FontAwesome 图标置于图像叠加卡的中心,但无法垂直居中。

我尝试了多种其他建议,例如使用 d-flexjustify-content-center,但似乎都没有效果。我错过了什么?

<head>
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.1/css/all.css">
</head>

<body>
    <div class="card bg-dark text-white">
      <img class="card-img" src="http://placehold.jp/500x200.png" >
      <div class="card-img-overlay text-center">
          <i class="fab fa-youtube fa-5x" style="color:#FF0000"></i>
      </div>
    </div>
</body>

我希望图标在图像中间居中,但只能水平对齐,不能垂直对齐。感谢您的帮助。

【问题讨论】:

【参考方案1】:

您可以将d-flex 类添加到您的.card-img-overlay 元素,然后将class="align-self-center mx-auto" 添加到内部a 元素:

<div class="card bg-dark text-white">
   <img class="card-img" src="images/example.jpg" >
   <div class="card-img-overlay d-flex">
     <a class="align-self-center mx-auto" data-fancybox href="https://www.youtube.com/watch?v=dQw4w9WgXcQ">
       <i class="fa fa-youtube fa-5x zoom" style="color:#FF0000"></i>
     </a>  
   </div>
</div>

有关align-self-center 的更多信息请参见官方 BS4 文档:https://getbootstrap.com/docs/4.3/utilities/flex/#align-self

【讨论】:

这解决了我的问题。我将align-self-center mx-auto 类添加到图标的i class="",而不是实际链接的a=class""。谢谢!【参考方案2】:

您可以在 card-img-overlay 元素上使用 bootstrap flex utilities class :

<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.1/css/all.css" integrity="sha384-50oBUHEmvpQ+1lW4y57PTFmhCaXp0ML5d60M1M7uH2+nqUivzIebhndOJK28anvf" crossorigin="anonymous">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">

<div class="card bg-dark text-white">
   <img class="card-img" src="https://fakeimg.pl/250x100/000000/" >
   <div class="card-img-overlay text-center d-flex flex-column justify-content-center">
      <a data-fancybox href="https://www.youtube.com/watch?v=dQw4w9WgXcQ" class="">
      <i class="fab fa-youtube fa-5x zoom" style="color:#FF0000"></i>
      </a>
   </div>
</div>

【讨论】:

【参考方案3】:

您的第一次尝试是正确的(添加 d-flexjustify-content-center 类)。您只是忘了添加align-items-center 类。

【讨论】:

以上是关于如何在 Bootstrap 4 中的图像覆盖卡上垂直对齐?的主要内容,如果未能解决你的问题,请参考以下文章

Bootstrap 图像卡文本覆盖

如何在引导 4 卡上添加边框

如何连续响应两列?在第一个文本中,在bootstrap 4中的第二个图像中

如何重新创建 UITabBarItem 图像过滤器?

如何在 bootstrap 4 卡的页脚顶部覆盖图标?

如何在 Bootstrap 4 中使用 Font Awesome 中的 svg 图标?