如何在两个引导列之间放置一个图标?

Posted

技术标签:

【中文标题】如何在两个引导列之间放置一个图标?【英文标题】:How to place an icon in between two bootstrap columns? 【发布时间】:2020-10-07 20:33:13 【问题描述】:

我想在同一行的两个引导列之间放置一个居中的图标?这些列都是 col-6 并且不能更改。我希望此图标始终位于移动设备和桌面设备等的两列之间。我该如何实现?

<a class="row bg-light" href="#">
    <div class="col-lg-6 ">
        <!-- stuff -->
    </div>

    I want an Icon here like: <i class="fa-bla"></i>

    <div class="col-lg-6 ">
        <!-- stuff -->
    </div>
</a>

【问题讨论】:

可能需要一个 CSS 解决方案来使用 position 想了这么多,也许你可以建议一个 css 实现? @Java_Man,也许您可​​以发布一个 MVCE 示例来说明您的问题,并使用相关的 html 和 CSS 标记。然后我们可以看到你正在使用什么样的图标,你想要它在哪里等等。 添加了一些html 【参考方案1】:

您可以使用 unicode 直接从 css 调用 font awesome。如果你给div 一个id,你可以使用::after 像这样添加图标:

#stuff::after 
  font-family: "FontAwesome";
  content: "\f007";
  vertical-align: middle;
<link href="https://use.fontawesome.com/releases/v5.0.1/css/all.css" rel="stylesheet">

<a class="row bg-light" href="#">
  <div id="stuff" class="col-lg-6 ">
    <!-- stuff -->
  </div>
  <div class="col-lg-6 ">
    <!-- stuff -->
  </div>
</a>

【讨论】:

【参考方案2】:

如果您没有找到更好的解决方案,那么我会尝试使用:

display: grid;
grid-template-columns: 45% 5% 45%;

(或者您需要将页面填满的尺寸)

然后也许可以弯曲图标以使其居中放置:

display: flex;
justify-content: center;
align-items: center;

在 Bootstrap 中更改 col-X 也可以,但你说它们不能更改,所以......我希望你能让它工作。

【讨论】:

【参考方案3】:

使用 CSS,您可以执行以下操作:

<a class="row bg-light" href="#">
    <div class="col-lg-6 has-icon">
        <!-- stuff -->
        <i class="fa-bla"></i>
    </div>
    <div class="col-lg-6">
        <!-- stuff -->
    </div>
</a>

.has-icon 
    position: relative;

.has-icon i 
    position: absolute;
    top: 50%;
    margin-top: -10px; // half of the icon's height 
    left: -10px; // will need adjusting to preference

当列在较小的设备上折叠时,您还需要考虑重新定位,因此请使用媒体查询并将图标放置在第一列的底部。

【讨论】:

以上是关于如何在两个引导列之间放置一个图标?的主要内容,如果未能解决你的问题,请参考以下文章

如何在颤动的屏幕底部放置一行

如何在不换行的情况下在引导列之间添加边距[重复]

如何有两个引导列,右边的一个被装箱,左边的一个从中心到左边是全宽的

如何在两个 Text 组件之间放置一个 TextInput 并让它包装得很好?

如何在此引导程序基础导航的右侧放置一个按钮?

将2个表单字段并排放置在引导列中