2017-03-20 7 views
1

iron-flex-layoutpaper-cardで素敵なプレイをするためにiron-listを得ようと苦労しています。私が望んでいるのは、paper-cardが、ページをカバーするために両軸を広げて(マージンをバンパーとして)、iron-listをコンテナ内に縦方向に展開して、すべての「仮想リスト" マジック。フレックスボックス付きポリマーアイアンリスト

どこが間違っていますか?

<script src="https://cdn.rawgit.com/Download/polymer-cdn/24b44b55/lib/webcomponentsjs/webcomponents-lite.min.js"></script> 

<link rel="import" href="https://cdn.rawgit.com/Download/polymer-cdn/24b44b55/lib/paper-card/paper-card.html"> 
<link rel="import" href="https://cdn.rawgit.com/Download/polymer-cdn/24b44b55/lib/paper-progress/paper-progress.html"> 
<link rel="import" href="https://cdn.rawgit.com/Download/polymer-cdn/24b44b55/lib/iron-flex-layout/iron-flex-layout-classes.html"> 
<link rel="import" href="https://cdn.rawgit.com/Download/polymer-cdn/24b44b55/lib/iron-list/iron-list.html"> 

<style is="custom-style" include="iron-flex iron-flex-alignment iron-positioning"> 
    body { 
    margin: 0; 
    height: 100vh; 
    } 

    paper-card { 
    margin: 1em; 
    } 

    iron-list { 
    border-bottom: 1px solid #f00; 
    border-top: 1px solid #000; 
    } 
</style> 

<div class="vertical layout"> 
    <template is="dom-bind" id="app"> 
    <paper-card heading="My paper card" class="flex"> 
     <div class="card-content layout vertical"> 
     <div>[[listing.length]]</div> 
      <iron-list items="[[listing]]" class="flex"> 
      <template> 
       <div class="layout horizontal"> 
       <div>[[item.name]]</div> 
       <div>[[item.value]]</div> 
       </div> 
      </template>a 
      </iron-list> 
     </div> 
    </paper-card> 
    </template> 
</div> 

<script> 
    "use strict"; 

    window.addEventListener('WebComponentsReady', e => { 
    app.listing = []; 
    for (var i = 0; i < 100; i++) { 
     app.push('listing', { name: i, value: i }); 
    } 
    }); 
</script> 

フィドル:https://jsfiddle.net/4czLkjfj/

答えて

1

あなたはheight: 100vhに設定body要素を持っています。

ただし、この高さはフレックスコンテナの1レベル下に継承されていません。

display: flexbodyに追加することです。これにより、子に自動的にalign-items: stretchを適用するフレックスコンテナが作成されます。

body { 
    display: flex; 
    align-items: stretch; /* initial setting; can be omitted */ 
} 

div.vertical.layout { 
    flex: 1; /* full width */ 
} 

revised fiddle

別の解決策は、単に親の高さを継承するためにフレックスコンテナを伝えることであろう。コメント欄でのフィードバックに基づいて

div.vertical.layout { 
    height: 100%; 
} 

revised fiddle


改訂ソリューションdemo

+0

これは問題の一部を修正 - おかげで.....しかし、との問題が依然として存在していますコンテナを埋めるために垂直方向に展開することを意味する「鉄リスト」。 (私は問題を強調するために異なる色で上下の境界を置いた)...現在、それは '0'の高さです – Cheetah

+0

私は余分ないくつかのステップを行くことができました:https://jsfiddle.net/ 4czLkjfj/3 /。これを追加するために回答を編集すると、私はそれを回答としてマークします。 – Cheetah

関連する問題