如何在引导程序中将同一行中的 svg 图标和文本内容对齐到右侧(右对齐)

Posted

技术标签:

【中文标题】如何在引导程序中将同一行中的 svg 图标和文本内容对齐到右侧(右对齐)【英文标题】:How to align svg icon and text content in same line towards right side (Right aligned) in bootstrap 【发布时间】:2021-11-21 14:13:09 【问题描述】:

我尝试将图标和文本向右对齐。但它没有发生。我附上设计。

我尝试了下面的代码 - 如果有任何可用选项,请告诉我。

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css" integrity="sha384-B0vP5xmATw1+K9KRQjQERJvTumQW0nPEzvF6L/Z6nronJ3oUOFUFpCjEUQouq2+l" crossorigin="anonymous">

<div class="col-1 icon1">
  <svg xmlns="http://www.w3.org/2000/svg"   fill="#2DB757" class="bi bi-circle-fill float-right" style="margin: 18px;">
    <circle cx="8" cy="8" r="8"/>
  </svg>

  <div class="p-2" id="numOfStatus">Completed</div>
</div>

【问题讨论】:

欢迎。请编辑您的帖子和 sn-p 以更好地展示问题。似乎没有足够的标记来查看它。你需要一行和一个带有 Bootstrap 的容器。 【参考方案1】:

您可以使用 flexbox 将元素向右移动

<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.6.0/css/bootstrap.min.css" rel="stylesheet"/>

<div class="container">
   <div class="row">
      <div class="col-12 icon1">
         <div class="d-flex justify-content-end align-items-center">
            <svg xmlns="http://www.w3.org/2000/svg"   fill="orange" class="bi bi-circle-fill">
               <circle cx="8" cy="8" r="8"/>
            </svg>
            <div class="p-2" id="numOfStatus">Not Started</div>
             <svg xmlns="http://www.w3.org/2000/svg"   fill="red" class="bi bi-circle-fill">
               <circle cx="8" cy="8" r="8"/>
            </svg>
            <div class="p-2" id="numOfStatus">Progress</div>
             <svg xmlns="http://www.w3.org/2000/svg"   fill="#2DB757" class="bi bi-circle-fill">
               <circle cx="8" cy="8" r="8"/>
            </svg>
            <div class="p-2" id="numOfStatus">Completed</div>
         </div>
      </div>
   </div>
</div>

【讨论】:

这确实有效!谢谢@alaksandar-jesus-gene ..【参考方案2】:

在您努力改进问题的同时,我会猜测您可能需要什么。通过在行上放置一个 flexbox 类并添加一个空的 flex 列,我们将固定宽度的小列推到右侧。

请注意,Bootstrap 4 的正确列类是 col-xs-1。确保您遵循正确的版本文档。

.col 
  background: pink;


.col-xs-1 
  background: #ddd;
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css" integrity="sha384-B0vP5xmATw1+K9KRQjQERJvTumQW0nPEzvF6L/Z6nronJ3oUOFUFpCjEUQouq2+l" crossorigin="anonymous">

<div class="container">
  <div class="row d-flex">
    <div class="col"></div>
    <div class="col-xs-1 icon1">
      <svg xmlns="http://www.w3.org/2000/svg"   fill="#2DB757" class="bi bi-circle-fill float-right" style="margin: 18px;">
                <circle cx="8" cy="8" r="8"/>
              </svg>
      <div class="p-2" id="numOfStatus">Completed</div>
    </div>
  </div>
</div>

要使布局更现代、更灵活,请仅使用 flex 类(包括在图标容器上):

.d-flex > div 
  background: pink;


.d-flex > div:last-child 
  background: #ddd;
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css" integrity="sha384-B0vP5xmATw1+K9KRQjQERJvTumQW0nPEzvF6L/Z6nronJ3oUOFUFpCjEUQouq2+l" crossorigin="anonymous">

<div class="container">
  <div class="d-flex">
    <div class="flex-grow-1"></div>
    
    <div class="icon1 d-flex">
      <svg xmlns="http://www.w3.org/2000/svg"   fill="#2DB757" class="bi bi-circle-fill float-right" style="margin: 18px;">
        <circle cx="8" cy="8" r="8"/>
      </svg>
      
      <div class="p-2" id="numOfStatus">Completed</div>
    </div>
  </div>
</div>

【讨论】:

以上是关于如何在引导程序中将同一行中的 svg 图标和文本内容对齐到右侧(右对齐)的主要内容,如果未能解决你的问题,请参考以下文章

如何将文本和社交媒体图标放在同一行

如何在 Bootstrap 4 中将 Font-Awesome 图标与一行文本垂直对齐?

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

SVG raw 未在颤动中显示文本

使用Bootstrap响应式设计使两个html元素保持在同一行

导航栏品牌和移动下拉菜单在同一行引导程序 4