ホームページ  >  記事  >  ウェブフロントエンド  >  重複するフレックス項目を実現する方法: 縮小要素を克服し、正常な重複を実装しますか?

重複するフレックス項目を実現する方法: 縮小要素を克服し、正常な重複を実装しますか?

Barbara Streisand
Barbara Streisandオリジナル
2024-10-31 11:47:02235ブラウズ

How to Achieve Overlapping Flex Items: Overcoming Shrinking Elements and Implementing Graceful Overlaps?

重複するフレックス項目

フレックスボックスを使用して水平方向に重複する一連の要素を作成することは、要素のサイズが縮小する可能性があるため、困難な場合があります。 。問題を詳しく調べて解決策を探ってみましょう。

以下の例は問題を示しています:

<code class="css">.cards {
  display: flex;
  max-width: 300px;
}

.card {
  width: 50px;
  height: 90px;
  border: 1px solid black;
  border-radius: 3px;
  background-color: rgba(255, 0, 0, 0.4);
}</code>
<code class="html"><div class='cards'>
  <div class='card'></div>
  <div class='card'></div>
  <div class='card'></div>
  <div class='card'></div>
  <div class='card'></div>
  <div class='card'></div>
  <div class='card'></div>
  <div class='card'></div>
  <div class='card'></div>
</div></code>

この例では、カードは最大幅内に収まるように縮小します。制約があり、望ましくない結果をもたらします。これを解決するために、修正されたアプローチを採用しましょう:

<code class="css">.cards {
  display: flex;
  align-content: center;
  max-width: 35em;
}

.cardWrapper {
  overflow: hidden;
}

.cardWrapper:last-child, .cardWrapper:hover {
    overflow: visible;
}

.card {
    width: 10em;
    min-width: 10em;
    height: 6em;
    border-radius: 0.5em;
    border: solid #666 1px;
    background-color: #ccc;
    padding: 0.25em;
  
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}</code>
<code class="html"><div class="cards">
  <div class="cardWrapper">
    <div class="card">card 1 blah blah blah</div>
  </div>
  <div class="cardWrapper">
    <div class="card">card 2 blah blah blah</div>
  </div>
  <div class="cardWrapper">
    <div class="card">card 3 blah blah blah</div>
  </div>
  <div class="cardWrapper">
    <div class="card">card 4 blah blah blah</div>
  </div>
  <div class="cardWrapper">
    <div class="card">card 5 blah blah blah</div>
  </div>
</div></code>

この修正されたソリューションでは、各カードの周囲にラッパー (cardWrapper) を導入します。ラッパーはコンテナとして機能し、その内容のオーバーフロー動作を制御します。デフォルトでは、ラッパーは非表示になりますが、最後のラッパーとカーソルを置いたラッパーが表示されるため、必要に応じてカードを重ねることができます。このアプローチにより、カードが適切な寸法を維持し、適切に重なり合うことが保証されます。

以上が重複するフレックス項目を実現する方法: 縮小要素を克服し、正常な重複を実装しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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