ホームページ > ウェブフロントエンド > CSSチュートリアル > 「overflow: hidden」が「position: Sticky」の動作を壊すのはなぜですか?

「overflow: hidden」が「position: Sticky」の動作を壊すのはなぜですか?

Patricia Arquette
リリース: 2024-12-06 18:31:12
オリジナル
365 人が閲覧しました

Why Does `overflow: hidden` Break `position: sticky` Behavior?

overflow:hidden がposition:sticky の動作に干渉する理由

Web 開発では、position:sticky を使用すると、ユーザーが操作している間、要素が表示され、コンテナ内に配置されたままになります。親コンテナまたはビューポートをスクロールします。ただし、コンテナに overflow:hidden が適用されている場合、position:sticky が意図したとおりに動作しない可能性があります。

元の問題:

次の HTML コードを考えてみましょう:

<div class="parent">
  <div class="sticky">
    ...
  </div>
</div>
ログイン後にコピー

スティッキー要素は表示されたままとなり、ユーザーとして親 div 内に配置されます。

オーバーフローの問題:

親 div に overflow:hidden を追加すると、スティッキー要素はコンテナーの上部にくっつかなくなり、スクロールするようになります。からview.

<div class="parent">
  <div class="sticky">
    ...
  </div>
</div>

ログイン後にコピー

原因:

overflow:hidden は、コンテナの境界を越えるコンテンツを非表示にします。これには、スティッキー要素がコンテナの表示領域の外に配置されている場合も含まれます。

解決策:

overflow:hidden がposition:sticky と干渉しないようにするには、次のようにします。 2 つのオプション:

  • 最新のテクニックを使用:この質問の最初の投稿では、CSS が進化して contains:paint を導入しました。親コンテナに contains: ペイントを設定すると、オーバーフローしたコンテンツがエスケープされるのを防ぎ、スティッキー要素が表示され、正しく配置されたままになるようにすることができます。
.parent {
  contain: paint;
}
ログイン後にコピー
  • オーバーフロー プロパティの調整: あるいは、オーバーフロー プロパティを非表示ではなく自動またはスクロールに設定することもできます。これにより、コンテンツがコンテナの境界を越えて拡張できるようになり、スティッキー要素が表示されたままになります。
.parent {
  overflow: auto;
  /* or */
  overflow: scroll;
}
ログイン後にコピー

以上が「overflow: hidden」が「position: Sticky」の動作を壊すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート