Flexboxに入れた画像サイズの固定・拡大縮小の設定方法

サンプルはこちら

画像を入れたFlexboxを伸縮させたときに

  • 画像のサイズは固定したい
  • 画像はFlexboxの伸縮に合わせて比率を維持したまま拡大縮小したい

とか色々あるので作ってみた次第。

HTML


画像のサイズは常に固定

Flexboxの大きさに追従
※画像の元サイズ(= 100%)が上限

Flexboxの大きさに追従
※上限なし

CSS


.parent {
    max-width: 90%;
    margin: 0 auto;

    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    justify-content: space-around;
}

.child {
    flex-grow: 1;

    border:1px solid #000;
    padding: 5px;
    margin: 0 5px;
}

.child p {
    text-align: center;
    line-height: 1.4rem;
    font-weight: bold;
    padding: 10px;
    border-bottom: 1px dotted #000;
}

/* 画像のサイズは常に固定 */
.child-left img {
    /* 幅・高さを具体的に指定する */
    width : calc(742px * 0.25);
    height: calc(800px * 0.25);
}

/* Flexboxの大きさに追従
   ※画像の元サイズ(= 100%)が上限 */
.child-center img {
    /* 幅もしくは高さを最大100%に設定、もう一方はauto */
    max-width: 100%;
    height: auto;
}

/* Flexboxの大きさに追従
  ※上限なし */
.child-right img {
    /* 幅もしくは高さを100%に設定、もう一方はauto */
    width: 100%; /* 親のサイズ目一杯まで広がる */
    height: auto;
}

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です