ホームページ >ウェブフロントエンド >CSSチュートリアル >小さな画面で Flexbox の折り返しによって最後の要素が中央に配置されないようにするにはどうすればよいですか?

小さな画面で Flexbox の折り返しによって最後の要素が中央に配置されないようにするにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-19 12:11:02705ブラウズ

How to Prevent Flexbox Wrap from Centering the Last Elements on Smaller Screens?

Flexbox のラップ: 要素の配置のカスタマイズ

Flexbox では、要素のラップ動作を制御することが、目的のレイアウトを実現するために重要です。質問で説明されている、画面が狭くなったときに最後の 2 枚のカードが左揃えではなく中央に配置されるという問題に対処するには、いくつかのテクニックを使用できます。

1.ゴースト要素:

1 つのアプローチには、最後の行の空のスペースを埋める「ゴースト」要素を作成することが含まれます。たとえば、最大 4 つの列が予想される場合、3 つの空の div をゴースト要素として導入できます。これにより、要素が左から折り返され、複数の行に均等に配置されます。

2.擬似要素:

もう 1 つのオプションは、擬似要素 (:before および :after) を利用することです。実際の要素の前後に空の div を追加すると、必要なゴースト要素の数が 2 つ減ります。このメソッドは、最後の行の視覚的な乱れも防ぎます。

実装:

提供されたコードで、CSS を次のように変更して、目的の動作を実現できます。

.card {
  /* Styles for the card elements */
}

.card:empty {
  width: 300px; /* Width of empty card */
  box-shadow: none; /* Remove box-shadow for empty cards */
  margin: 2rem; /* Keep empty cards aligned with actual cards */
  padding-bottom: 0; /* Remove padding for empty cards */
}

.recipe-grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-around;
}

HTML に必要なゴーストを追加しますelements:

<div class="container">
  <div class="recipe-grid">
    <!-- Actual card elements -->
    <div class="card">
      <!-- Card content -->
    </div>
    <!-- ... more card elements -->
    
    <!-- Ghost elements -->
    <div class="card"></div>
    <div class="card"></div>
    <div class="card"></div>
  </div>
</div>

このアプローチにより、画面の幅で必要になるたびにカードが左から折り返され、新しい行から開始されます。ゴースト要素は最後の行の残りのスペースを占め、複数の行にわたってカードを均等に配置します。

以上が小さな画面で Flexbox の折り返しによって最後の要素が中央に配置されないようにするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。