显示 flexbox 居中但左对齐项目,如文本左对齐

Erd*_*ss4 5 html css centering flexbox

我正在尝试将这些 div 设置为显示在中心,但保持它们的项目显示在左侧,就像text-align: left会做的那样。

这是我的例子:https : //jsfiddle.net/gr5Lmos1/

#donateList {
  display: flex;
  justify-content: center;
  align-items: center;
  align-self: center;
  flex-direction: column;
  flex-wrap: wrap;
}

.donateItem {
  flex: 0 1 auto;
  align-items: flex-start;
  justify-content: flex-start;
  align-self: center;
}

.donateItem * {
  display: inline-block;
}

.donateItem p {
  vertical-align: bottom;
}

.donateItem img {
  height: 64px;
  width: 64px;
}
Run Code Online (Sandbox Code Playgroud)
<div id="donateList">
  <div class="donateItem">
    <img src="/images/icons/bitcoin.png">
    <p>Bitcoin:</p>
    <p>fkewjhf;eiwhf;iewfhwehfewifhew</p>
  </div>
  <div class="donateItem">
    <img src="/images/icons/paypal.png">
    <p>Paypal:</p>
    <p>eijfhewfwifhefefewf</p>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

我正在尝试将 donateItem 的内容显示在所有左侧,但将所有 donateItem 的 divs 中心保留为现在的样子。

kuk*_*kuz 11

如果您愿意在标记中包含另一个包装器,则很容易:

  1. 使用align-items: flex-start(或让它采用默认stretch值)作为#donateList

  2. 将新包装器 div 垂直和水平居中对齐。

请参阅下面的演示(还删除了一些多余的样式):

main { /* ADDED */
  display: flex;
  align-items: center;
  justify-content: center;
}
#donateList {
  display: flex;
  justify-content: center;
  align-items: flex-start; /* CHANGED */
  /*align-self: center;*/
  flex-direction: column;
  flex-wrap: wrap;
}

.donateItem {
  flex: 0 1 auto;
  /*align-items: flex-start;
  justify-content: flex-start;
  align-self: center;*/
}

.donateItem * {
  display: inline-block;
}

.donateItem p {
  vertical-align: bottom;
}

.donateItem img{
  height: 64px;
  width: 64px;
}
Run Code Online (Sandbox Code Playgroud)
<main>
  <div id="donateList">
    <div class="donateItem">
      <img src="http://placehold.it/100x100">
      <p>Bitcoin:</p>
      <p>fkewjhf;eiwhf;iewfhwehfewifhew</p>
    </div>
    <div class="donateItem">
      <img src="http://placehold.it/100x100">
      <p>Paypal:</p>
      <p>eijfhewfwifhefefewf</p>
    </div>
  </div>
</main>
Run Code Online (Sandbox Code Playgroud)