私は学ぶ flex-layout 、そして私はレスポンシブなUIを作成しようとしています。私はbootstrapグリッドシステムで長年の経験がありますが、以下を実行する方法を理解できないようです( ライブデモ ):
モバイル:
私がそれを正しく理解している場合、以下のコードのように、rows
とcolumns
の組み合わせを使用する必要があります
<div class="container" fxLayout="row" fxLayout.xs="column" fxLayoutWrap fxLayoutGap="0.5%" fxLayoutAlign="center">
<div fxFlex="25%"> ..code left out..</div>
<div fxFlex="25%"> ..code left out..</div>
<div fxFlex="25%"> ..code left out..</div>
<div fxFlex="25%"> ..code left out..</div>
</div>
小さな画面では、レイアウトがrow
からcolumn
に変わります。つまり、大型のモバイルモニター用に上記のUIの例を実装しました。
質問:中型モニターのUIを実装するにはどうすればよいですか(上の画像を参照)? row
とcolumn
を組み合わせる方法がわかりません
アイテムの配列をループしてコードを最小限に抑えます。そして、私はまっすぐxsに行くのではなくmdからsmに移行を変更しましたが、それはあなたの好みです。レイアウトのギャップも差し引いています(-0.5%)。
<div class="container" fxLayout="row" fxLayout.sm="column" fxLayoutWrap fxLayoutGap="0.5%" fxLayoutAlign="center">
<ng-container *ngFor="let item of items">
<li
fxFlex="0 1 calc(25% - 0.5%)"
fxFlex.lt-md="0 1 calc(50% - 0.5%)"
fxFlex.lt-sm="100%">
</li>
</ng-container>
</div>
あなたはそのように試すことができます:
.container { // for desktop & tablet
display: flex;
flex-flow: row wrap;
}
.container div {
width: 25%
}
@media for middle { // for tablet (mid)
.container div {
width: 50%
}
}
@media for mobile { //for mobile
.container {
flex-direction: column;
}
.container div {
width: 100%
}
}
あまり役に立たないので申し訳ありませんが、フレックス付きの速いヒントです。
ありがとう