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

时间:2018-08-23 07:47:34

标签: html css flexbox styling markup

我具有以下结构

<!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,即与最长的“框”一样宽(Fooooooo Baaaaaar)并显示为列。请注意,每个display: flex;上都需要.container。我进一步不知道会有多少个元素。

我的最外面的div #whatStyling需要使用flex box的哪种样式。

2 个答案:

答案 0 :(得分:1)

使用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>

答案 1 :(得分:0)

您可以添加这段代码。不需要弹性方向,因为它是默认设置。

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

}

.container {
  /*display: flex;*/
  flex-grow: 1;
  flex-basis: 0;
}
弹性成长:1; flex-basis:0; 会成功的

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