2017-05-19 10 views
-2

私は、特定のユースケースで使用するために動的でなければならないフレックスボックスでレイアウトを構築しようとしています。 .app-content-insideというラッパーがあり、ビューポートの高さ(ヘッダーとビューポートの100% - 左側のナビゲーションバー)が100%使用されています。これはこれまでのところうまく動作します。私は特定のdivにフレックスボックス列を追加するには、クラス.nrow-colを使用チャイルドハイトのFlexbox列ストレッチ

.app-body-inner { 
    padding: 0 !important; 
    position: relative; 
    width: inherit; 
    height: calc(100vh - 40px); /* changed for demo */ 
    overflow: hidden; 
} 

。このdiv内に別のクラス.nrow-rowが存在する場合、このflexbox列の子は、残りの垂直方向の空き領域に引き伸ばされます。

.nrow-col { 
    display: flex; 
    flex-direction: column; 
    height: inherit; 
} 

.nrow-col > .nrow-row { 
    flex: auto; 
} 

は、私は以下のクラスを使用するフレックスボックスの行を追加するには:

.nrow-row { 
    display: flex; 
    flex-direction: row; 
} 

これは、最初のインスタンスのために動作しますが、私は、このようにHTMLを使用する場合、内部フレキシボックスの列の子はもう伸びていない。

<div class="app-body-inner"> 
    <div class="nrow-col"> 
    <div class="p-a top"> 
     topbar 
    </div> 
    <div class="row no-gutter nrow-row"> 
     <div class="col-sm-2"> 
     <div class="nrow-col"> 
      <div class="p-a top"> 
      coltop 
      </div> 
      <div class="nrow-row"> 
      <div class="nrow-body"> 
       <div class="nrow-inner"> 
       /\<br> 
       this should stretch between coltop and colbottom<br> 
       \/ 
       </div> 
      </div> 
      </div> 
      <div class="p-a bottom"> 
      colbottom 
      </div> 
     </div> 
     </div> 
     <div class="col-sm-10"> 
     <div class="nrow-col"> 
      <div class="p-a top"> 
      coltop 
      </div> 
      <div class="p-a top"> 
      coltop_another 
      </div> 
      <div class="row nrow-row"> 
      <div class="nrow-body"> 
       <div class="nrow-inner"> 
       /\<br> 
       this should stretch between coltop_another and colbottom<br> 
       \/ 
       </div> 
      </div> 
      </div> 
      <div class="p-a bottom"> 
      colbottom 
      </div> 
     </div> 
     </div> 
    </div> 
    <div class="p-a bottom"> 
     bottombar 
    </div> 
    </div> 
</div> 

私の問題をテキストにするのは非常に難しいので、私が直面している問題を視覚化するplunkrを作成しました。

たぶん、誰かがあなたがフレックスコンテナにネストされた親コンテナを作成した場合、彼らは自動的に利用可能なすべての高さを消費させ、子どもたちにalign-items: stretchを適用する私に

+1

はこれが何をしたいです:ここで

は、あなたが追加する必要がある何ですか? '.col-sm-2'と' .col-sm-10'に 'display:flex'を追加します。 https://plnkr.co/edit/EsfplnxorYoINC13mO8x?p=preview –

+0

はいthats it !!! –

答えて

2

を助けることができます。

.col-sm-2, .col-sm-10 { 
    display: flex; 
} 

revised demo

+0

が動作しますが、このような内部のコンテンツがhttps://plnkr.co/edit/hQrxJTm9UR22U9a7NZPF?p=previewを取得した場合、どのようにしてオーバーフローを隠すことができますか? colbottomは画面上に留まり、 '.row-body-inner'の内容はスクロール可能でなければなりません。 –

+0

' .row-body-inner'はスクロール可能で、 'coltop'と' colbottom'は画面上に残るべきです。 –

+0

For 'overflow:auto'が機能するには、オーバーフロー要素の高さを定義する必要があります。何かのような:coltop:5%、colbottom:5%、nrow:90%;オーバーフロー:自動。基本的には、オーバーフローが働くには限界を設定する必要があります。次に例を示します:https://plnkr.co/edit/OXZ70RnkaxumBYhYb5Km?p=preview –

関連する問題