ホームページ  >  記事  >  ウェブフロントエンド  >  Flex アイテムが親の高さを超えないようにして、Firefox でスクロールバー機能を有効にする方法

Flex アイテムが親の高さを超えないようにして、Firefox でスクロールバー機能を有効にする方法

DDD
DDDオリジナル
2024-10-24 19:31:29115ブラウズ

How to Prevent Flex Items from Exceeding Parent Height and Enable Scrollbar Functionality in Firefox?

フレックス項目が親の高さを超えないようにし、Firefox でスクロール バー機能を有効にする

特定のフレックスボックスに関して、Firefox は Chrome とは異なる動作をしますこのシナリオでは、子 div の高さが親の高さを超えます。この問題は、スクロールバーと flex:1 を持つ子 div が親フレックスボックス コンテナの高さを超えようとしたときに発生します。

短い回答

この問題を解決するには、次のようにします。 overflow-y:scroll を使用する子 div には、flex: 1 の代わりに flex: 1 1 1px を使用します。 CSS ルールのこの変更により、子 div の flex ベースが固定の高さに設定されるようになり、Firefox の問題が解決されます。

説明

ほとんどの場合、min を追加します。 -height: 0 を使用して列方向コンテナ内の項目を変更すると、問題が解決されます。ただし、この場合、問題は flex-basis にあります。

flex: 1 の短縮ルールは、flex-grow: 1、flex-shrink: 1、flex-basis: 0 の 3 つの部分に分かれます。デフォルトでは、flex-basis は 0 に設定されていますが、これは Firefox および Edge ブラウザでオーバーフロー状態を引き起こすには不十分です。

標準化を遵守するには、flex-basis に固定の高さを指定します (たとえそれが単なる高さであっても)。 1ピクセル)。これにより、オーバーフローが発生し、スクロールバーが生成され、子 div が親の高さを超えることがなくなります。

コードの調整は次のとおりです。

<code class="css">#messagelist {
    flex: 1 1 1px; /* new */
}

#messagecontents {
    flex: 1 1 1px; /* new */
}</code>

この解決策を採用すると、問題を解決するのに役立ちます。 Firefox の親フレックスボックス div と子フレックスボックス div の間の高さの不一致を解消し、ブラウザー間で一貫した動作を保証します。

以上がFlex アイテムが親の高さを超えないようにして、Firefox でスクロールバー機能を有効にする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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