2017-03-03 10 views
4

可変高さの要素をコンテナ間で垂直に配置しようとしています。つまり、各コンテナの最初の要素が互いに垂直に整列し、各コンテナの2番目の要素が垂直に整列します。 。など異なる親コンテナの子要素を整列する

私はフレックスボックスを使用していますが、これが可能なのかどうかはわかりません。それともCSSグリッドを使用することは可能ですか?

私はそれがまだ働いて得ることができなかった望ましい結果

enter image description here

See demo

main { 
 
    display: flex; 
 
    flex-wrap: wrap; 
 
} 
 

 
.container { 
 
    background: grey; 
 
    margin: 0 10px 20px; 
 
    padding: 10px; 
 
    width: 200px; 
 
} 
 

 
.top { 
 
    background: red; 
 
} 
 

 
.middle { 
 
    background: blue; 
 
} 
 

 
.bottom { 
 
    background: green; 
 
}
<main> 
 
    <div class="container"> 
 
    <div class="top">Some text here, Some text here, Some text here</div> 
 
    <div class="middle">And some here, And some here, And some here, And some here, And some here, And some here</div> 
 
    <div class="bottom">And a little here too</div> 
 
    </div> 
 
    <div class="container"> 
 
    <div class="top">Some text here, Some text here</div> 
 
    <div class="middle">And some here, And some here, And some here, And some here, And some here, And some here, And some here, And some here, And some here</div> 
 
    <div class="bottom">And a little here too, And a little here too</div> 
 
    </div> 
 
    <div class="container"> 
 
    <div class="top">Some text here, Some text here, Some text here, Some text here, Some text here</div> 
 
    <div class="middle">And some here</div> 
 
    <div class="bottom">And a little here too</div> 
 
    </div> 
 
    <div class="container"> 
 
    <div class="top">Some text here, Some text here, Some text here</div> 
 
    <div class="middle">And some here, And some here, And some here, And some here, And some here, And some here</div> 
 
    <div class="bottom">And a little here too</div> 
 
    </div> 
 
    <div class="container"> 
 
    <div class="top">Some text here, Some text here, Some text here</div> 
 
    <div class="middle">And some here, And some here, And some here, And some here, And some here, And some here</div> 
 
    <div class="bottom">And a little here too</div> 
 
    </div> 
 
    <div class="container"> 
 
    <div class="top">Some text here, Some text here, Some text here</div> 
 
    <div class="middle">And some here, And some here, And some here, And some here, And some here, And some here</div> 
 
    <div class="bottom">And a little here too</div> 
 
    </div> 
 
    <div class="container"> 
 
    <div class="top">Some text here, Some text here, Some text here</div> 
 
    <div class="middle">And some here, And some here, And some here, And some here, And some here, And some here</div> 
 
    <div class="bottom">And a little here too</div> 
 
    </div> 
 
</main>

+0

あなたが各フレックス項目別に – vsync

+2

フレキシボックスが柔軟で揃える必要があります。のように、それはあなたの子供の要素がコンテンツに応じて異なる次元を持つことができます。異なる親から子供をリンクさせたい場合は、親の中で 'flexbox'の動作を無効にし、それらに一定の高さを与える規則を与える必要があります。または関連するすべてのアイテムが同じ親行内の兄弟であるように、マークアップを変更する必要があります。 3番目のオプションは、 'javascript'を使ってそれらをリンクすることです。 –

+0

@AndreiGheorghiu - はい、これは私が逃げようとしていたものです。つまり、コンテンツの高さが変わる可能性があるため、固定高さはありません。そして、私はすべての子要素がそれ自身の親コンテナ内に現れるようにする必要があります(毎回不明な数のコンテナがあります)。 – Ash

答えて

0

多分それはあなた

.container { 
    background: grey; 
    margin: 0 10px 20px; 
    padding: 10px; 
    width: 200px; 
    display: flex; 
    flex-direction: column; 
    justify-content: center; 
} 

ライブデモを助ける、これを試してみてください - http://codepen.io/anon/pen/oZxaja?editors=1100

+0

申し訳ありませんが、多分私は自分自身をとてもうまく説明していないかもしれません。私はお互いに整列するために、赤い要素のそれぞれの上部を探しています、互いに整列する青い要素のそれぞれの上部とお互いに整列するために緑の要素のそれぞれの上部。 – Ash

+0

@Ashは最初のコンテナを見ますhttp://codepen.io/anon/pen/XMdxgE?editors=1100これはどういう意味ですか? – grinmax

+0

grinmax私は、上記の最初の質問に希望の結果で画像を追加しました。混乱させて申し訳ありません。 – Ash

関連する問題