CSS
 Computer >> コンピューター >  >> プログラミング >> CSS

CSSのflex-shrinkプロパティでフレックスアイテムの縮小率を指定する方法

CSSのflex-shrinkプロパティは、フレックスコンテナ内のスペースが不足した場合に、各フレックスアイテムを他のアイテムと比較してどれだけ縮小させるかを指定するためのプロパティです。

デフォルト値は「1」で、この値が大きいほど、他のアイテムに比べてより多く縮小されます。逆に「0」を指定すると、そのアイテムはまったく縮小されなくなります。

flex-shrinkの基本的な使い方

以下のコード例では、9つのフレックスアイテムを持つフレックスコンテナを作成しています。このうち「Q4」のアイテムにはflex-shrink: 0を設定しているため、画面幅が狭くなっても他のアイテムが縮小しても、「Q4」だけは元の幅(100px)を維持します。

サンプルコード

<!DOCTYPE html>
<html>
   <head>
      <style>
         .mycontainer {
            display: flex;
            background-color: orange;
         }
         .mycontainer > div {
            background-color: white;
            text-align: center;
            line-height: 40px;
            font-size: 25px;
            width: 100px;
            margin: 5px;
         }
      </style>
   </head>
   <body>
      <h1>Quiz</h1>
      <div class = "mycontainer">
         <div>Q1</div>
         <div>Q2</div>
         <div>Q3</div>
         <div style = "flex-shrink: 0">Q4</div>
         <div>Q5</div>
         <div>Q6</div>
         <div>Q7</div>
         <div>Q8</div>
         <div>Q9</div>
      </div>
   </body>
</html>

flex-shrinkの値について

  • 1(デフォルト):他のアイテムと同じ比率で縮小します。
  • 0:縮小しません。アイテムは常に初期サイズを保ちます。
  • 2以上の数値:デフォルトのアイテムに比べて2倍以上縮小します。数値が大きいほど縮小率が高くなります。

ブラウザのウィンドウ幅を変更して表示を確認すると、flex-shrink: 0が適用された「Q4」以外のアイテムが縮小していく様子がわかります。レスポンシブデザインにおいて、特定の要素の幅を固定したい場合などに非常に便利なプロパティです。

  1. CSSでフレックスアイテムをコンテナの先頭に揃える方法|justify-content: flex-startの使い方

    CSS Flexboxでフレックスアイテムをコンテナの先頭(左端)に揃えるには、justify-contentプロパティにflex-startを指定します。justify-contentは、主軸(デフォルトでは水平方向)に沿ってフレックスアイテムをどのように配置するかを制御するプロパティです。flex-startを指定すると、すべてのアイテムが主軸の開始位置に寄せて配置されます。なお、flex-startはjustify-contentの初期値でもあるため、明示的に指定しなくても同じ挙動になります。サンプルコード以下のコードを実行して、flex-startの実際の動作を確認してみましょう。&l

  2. CSSのflex-directionでフレックスアイテムを水平方向に配置する方法

    CSSでフレックスアイテムを水平方向に配置するには、flex-directionプロパティにrow値を指定します。flex-directionは、フレックスコンテナ内のアイテムが並ぶ方向(主軸の方向)を決定する重要なプロパティです。 flex-direction: row の基本 rowはflex-directionのデフォルト値で、アイテムを左から右へ横一列に並べます。なお、文書の書字方向が右から左(RTL)の場合は、逆に右から左へ並びます。 flex-directionで使える主な値 row:アイテムを水平方向(左から右)に配置 row-reverse:アイテムを水平方向(右から左)に配