在应用 flexbox 时遇到问题

having issues applying flexbox

我在 div 上应用 flexbox 时遇到一些问题。

问题来了:

<div class="annual-plan">
        <div class="icon">
          <i class="fas fa-music"></i>
        </div>
        <div class="pricing">
          <h3>Annual Plan</h3>
          <span>.99/year</span>
        </div>
        <a href="#">Change</a>
 </div>

整个代码包含在 div 中,带有一个名为 class 的内容部分

我尝试使用以下 css 来定位它:

.content-section .annual-plan .pricing{
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

但还是没有生效,中间看不到space。

我检查了 chrome 的开发工具,它没有被任何其他代码覆盖。

我做错了什么,我该如何解决?

删除 h3 上的默认 padding 并将您的代码嵌套在 container 中,然后对每个应用弹性框,并使用 justify-content: space-between; 到 space 你的元素。

.annual-plan {
    background-color: lightgrey;
    border-radius: 30px;
    width: 400px;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    padding: 30px;
}

h3 {
  margin-bottom: .5rem;
}

.container {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding: 0px;
 }
<head>
<link rel="stylesheet" href="path/to/font-awesome/css/font-awesome.min.css">
</head>
<div class="container">
<div class="annual-plan">
        <div class="icon">
          <i class="fas fa-music">Logo</i>
        </div>
        <div class="pricing">
          <h3>Annual Plan</h3>
          <span>.99/year</span>
        </div>
        <a href="#">Change</a>
 </div>
 </div>

正如您所描述的,这里的问题只是您使用了错误的选择器。您已经明确定位了中央 .pricing div,但它读起来就像您希望整个 .annual-plan 呈现为一列...如果是这样,您应该尝试删除 .pricing 来自上面代码中的选择器。

这里就是,有一些额外的颜色等等。

.annual-plan {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: center;
  /* extra styles just for fun */
  background: lightgrey;
  border-radius: 12px;
  padding: 1em;
  min-height: 12em;
  max-width: 33.3333%;
}

.annual-plan .pricing {
  text-align: center;
}

/* more styles just for fun */
h3 {
  margin: 0;
}
<div class="annual-plan">
  <div class="icon">
    <i class="fas fa-music"></i>
  </div>
  <div class="pricing">
    <h3>Annual Plan</h3>
    <span>.99/year</span>
  </div>
  <a href="#">Change</a>
</div>