html - CSS - 如何将文本和图标对齐一行

标签 html css sass flexbox

我需要将 div 内的图标和文本对齐在一行中,如下图所示:

enter image description here

我使用 Flexbox 将 shopping-cart-iconshopping-cart-section 放置在一行中。

.shopping-cart-container {
  display: flex;
  align-items: flex-end;
}
.shopping-cart-container .shopping-cart-icon {
  background-color: blue;
  padding: 0px;
  text-align: bbo;
}
.shopping-cart-container .shopping-cart-section .shopping-cart-name {
  background-color: green;
  padding: 0px;
}
.shopping-cart-container .shopping-cart-section .shopping-cart-price {
  background-color: yellow;
  padding: 0px;
}
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" integrity="sha384-wvfXpqpZZVQGK6TAh5PVlGOfQNHSoD2xbE+QkPxCAFlNEevoEH3Sl0sibVcOQVnN" crossorigin="anonymous">
<div class="shopping-cart-container">
    <div class="shopping-cart-icon"><i class="fa fa-shopping-cart fa-3x"></i></div>
    <div class="shopping-cart-section">
        <div class="shopping-cart-name">Shopping cart</div>
        <div class="shopping-cart-price">12 000</div>
    </div>
</div>

但我不知道如何将 div shopping-cart-icon 中的图标和 div shopping-cart-price 中的文本对齐到底部。请帮忙我?

最佳答案

方法 1:使用 FLEX

这里我使用了 flex 来解决问题,并将 display:flex 属性赋予了 shopping-cart-section。 现在,您可以为部分的子项(即购物车名称和购物车价格)分配其各自的 Flex 属性。它们是flex-grow。您可以在下面的示例中找到 Flex 逻辑。

.shopping-cart-container {
  display: flex;
}

.shopping-cart-container .shopping-cart-icon {
  background-color: blue;
  padding: 0px;
  border: 1px solid black;
}

.shopping-cart-container .shopping-cart-section {
  border: 1px solid black;
  display: flex;
  flex-direction: column;
}

.shopping-cart-container .shopping-cart-section .shopping-cart-name {
  background-color: green;
  padding: 0px;
  flex-grow: 1;
}

.shopping-cart-container .shopping-cart-section .shopping-cart-price {
  background-color: yellow;
  padding: 0px;
  flex-grow: 1;
}
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"/>
<div class="shopping-cart-container">
  <div class="shopping-cart-icon"><i class="fa fa-shopping-cart fa-3x"></i></div>
  <div class="shopping-cart-section">
    <div class="shopping-cart-name">Shopping cart</div>
    <div class="shopping-cart-price">12 000</div>
  </div>
</div>

方法2:使用行高

在下面的示例中,您可以使用 line-height 属性进行检查。 在某些情况下它可能会崩溃,但对于这么小的图像来说,变化将是非常微小的。但对于你的情况,最好使用 Flexbox。

.shopping-cart-container {
  display: flex;
}

.shopping-cart-container .shopping-cart-icon {
  background-color: blue;
  padding: 0px;
}

.shopping-cart-container .shopping-cart-section .shopping-cart-name {
  background-color: green;
  padding: 0px;
  line-height: 25px;
}

.shopping-cart-container .shopping-cart-section .shopping-cart-price {
  background-color: yellow;
  padding: 0px;
  line-height: 25px;
}
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" />
<div class="shopping-cart-container">
  <div class="shopping-cart-icon"><i class="fa fa-shopping-cart fa-3x"></i></div>
  <div class="shopping-cart-section">
    <div class="shopping-cart-name">Shopping cart</div>
    <div class="shopping-cart-price">12 000</div>
  </div>
</div>

关于html - CSS - 如何将文本和图标对齐一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46506084/

相关文章:

html - 是否可以在 HTML 中创建多边形元素?

html - Bootstrap/CSS - 如何在移动设备上排列 2 列

html - div内的图像在图像下方有额外的空间

javascript - 如何知道我的元素是否溢出

css - VueJS - 在显示元素之前旋转

css - compass 垂直节奏不起作用

javascript - AngularJS 分页 - id 计数器在新页面中从 1 开始

ruby-on-rails - Rails 为什么需要 .css.scss 和 .html.haml?

背景反转边界半径

html - 不在 "display: table-cell"元素内部的 "display: table-row"元素是有效构造吗?