CSS 中彼此相邻的垂直对齐项目

Vertical aligning items in CSS which are next to each other

我在 div 中有 2 个图标和 1 个 link 作为按钮使用

.A {
  width: 50px;
  height: 50px;
  border: 1px solid black;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  margin: 5px;
}

a {
  text-decoration: none;
}

.B {
  width: 100px;
  height: 50px;
}


/* when i change font-size for example to 10px then the element moves down a bit*/

.A span {
  text-transform: uppercase;
  color: black;
  font-size: 10px;
}
<script src="https://kit.fontawesome.com/4254229804.js" crossorigin="anonymous"></script>

<a href="#">
  <div class="A">
    <i class="fab fa-facebook-f"></i>
  </div>
</a>

<a href="#">
  <div class="A">
    <i class="fab fa-youtube"></i>
  </div>
</a>

<a href="#">
  <div class="A B">
    <span>sign up</span>
  </div>
</a>

这里是 link 代码笔 https://codepen.io/hanzus/pen/GRrMbbm

当“注册”link 的 span 元素的字体大小为 16px 时,一切都居中,但是当我将它更改为例如 10px 时,link 向下移动了一点,它是与 facebook 和 youtube 的其他 div 不在同一行 links.

当我更改 1 个元素的字体大小时,如何让这些 link 出现在同一行?

在 flex 中包装:

.container {
  display: flex;
}
<div class="container">
  <a href="#">
    <div class="A">
      <i class="fab fa-facebook-f"></i>
    </div>
  </a>

  <a href="#">
    <div class="A">
      <i class="fab fa-youtube"></i>
    </div>
  </a>

  <a href="#">
    <div class="A B">
      <span>sign up</span>
    </div>
  </a>
</div>

Codepen

我知道我有点晚了,但可以让它更简单:

.container {
  display: inline-flex;
  width: 300px;
  height: 50px;
}

.container a {
  width: 33%;
  margin: 5px;
  border: 1px solid black;
  display:inline-flex;
  justify-content:center;
  align-items:center;
  font-size: 16px;
}
  <div class="container">
      <a href="#">
          <i class="fab fa-facebook-f"></i>
      </a>

      <a href="#">
          <i class="fab fa-youtube"></i>
      </a>

      <a href="#">
          <span>sign up</span>
      </a>

  </div>

您应该只添加“flex-direction: column;”对于您的 CSS 代码。

.container{
  display: flex;
  flex-direction: column;
}

.A {
  width:50px;
  height: 50px;
  border: 1px solid black;
  display:inline-flex;
  justify-content:center;
  align-items:center;
  margin: 5px;
}

a {
  text-decoration:none;
}

.B {
  width: 100px;
  height: 50px;
}

.A span {
  text-transform: uppercase;
  color:black;
  font-size: 10px;
}