ウェブデザインでX方向にコンテンツを横並びに配置する際には、一般的にFlexboxを活用します。
その中でも、子要素の大きさを調整する際に重要となる、flex-shrink
プロパティの使用方法を紹介します。
以下の例では、子要素が指定のWidth通りに反映されません。
<div id="parent">
<div class="items"></div>
<div class="items"></div>
<div class="items"></div>
</div>
#parent {
display: flex;
align-items: center;
overflow-x: scroll;
width: 100%;
background: #000;
height: 400px;
}
.items {
height: 300px;
width: 300px;
background: #fff;
color: #000;
margin: 0 1rem;
}
以上の例では、親要素(#parent)に子要素(.items)がピッタリ収まるように表示されておりwidth: 500pxでは表示されてません。
これを防ぐには、flex-shrink: 0;
を指定します。
<div id="parent">
<div class="items"></div>
<div class="items"></div>
<div class="items"></div>
</div>
#parent {
display: flex;
align-items: center;
overflow-x: scroll;
width: 100%;
background: #000;
height: 400px;
}
.items1 {
height: 300px;
width: 300px;
background: #fff;
color: #000;
margin: 0 1rem;
flex-shrink: 0; /*追加*/
}
flex-shrink: 0;
を指定することで、子要素が縮小されるのを防ぎ、意図したレイアウトを維持することができます。これにより、横並びのレイアウトで隣り合う要素同士が崩れるのを防ぎ、きれいに整列させることが可能です。特に、X方向に要素を並べユーザーにスクロールしてもらいたい時には、有効です。