使 <div> 长度相同并出现在列中

Make <div> same length and appear in column

我有以下结构

<!DOCTYPE html>
<html>

  <head>
    <title></title>
  </head>

  <body>
    <div id='whatStyling'>
      <div class='container'>
        <div class='element'>
          <p class='text'>Foo</p>
        </div>
      </div>
      <div class='container'>
        <div class='element'>
          <p class='text'>Bar</p>
        </div>
      </div>
      <div class='container'>
        <div class='element'>
          <p class='text'>Fooooooo Baaaaaar</p>
        </div>
      </div>
    </div>
  </body>

</html>

加价

#whatStyling {
  display: flex;
  flex-direction: column,
}

.container {
  display: flex;
}

.element {
  display: flex;
  padding: 0.2rem 2.8rem 0.2rem 0.8rem;
  min-width: 1rem;
  background-color: rgb(255, 0, 0);
}

.text {
  color: rgb(128, 128, 128);
  font-family: Roboto, sans-serif;
  font-weight: 500;
  font-size: 1.5rem;
  background-color: rgb(255, 255, 255);
}

http://jsfiddle.net/g8ansow3/6/

我想让所有元素都相同 width,即与最长的 "box" 一样宽(Fooooooo Baaaaaar)并显示为列。请注意,我需要每个 .container 上的 display: flex;。我还不知道会有多少元素。

我最外层的 div #whatStyling 需要什么样的样式,如果可能的话,flex box

使用 inline-flex 代替 flex 然后添加 width:100%

#whatStyling {
  display: inline-flex; /*Changed this*/
  flex-direction: column; /* Corrected a typo here*/
}

.container {
  display: flex;
}

.element {
  display: flex;
  padding: 0.2rem 2.8rem 0.2rem 0.8rem;
  min-width: 1rem;
  width:100%; /*Added this */
  background-color: rgb(255, 0, 0);
}

.text {
  color: rgb(128, 128, 128);
  font-family: Roboto, sans-serif;
  font-weight: 500;
  font-size: 1.5rem;
  background-color: rgb(255, 255, 255);
}
<div id='whatStyling'>
  <div class='container'>
    <div class='element'>
      <p class='text'>Foo</p>
    </div>
  </div>
  <div class='container'>
    <div class='element'>
      <p class='text'>Bar</p>
    </div>
  </div>
  <div class='container'>
    <div class='element'>
      <p class='text'>Fooooooo Baaaaaar</p>
    </div>
  </div>
</div>

您可以添加这段代码。不需要 flex-direction,因为它是默认设置的。

#whatStyling {
  display: flex;
  flex-direction: column;

}

.container {
  /*display: flex;*/
  flex-grow: 1;
  flex-basis: 0;
}

弹性增长:1; 弹性基础:0; 会成功的

http://jsfiddle.net/g8ansow3/18/