検索
ホームページウェブフロントエンドCSSチュートリアルPosition:sticky を使用してスティッキー レイアウトの例を実装する CSS の詳細な説明

この記事では、CSSのposition:stickyを使用してスティッキーレイアウトを実現する方法に関する関連情報を主に紹介します。編集者はそれが非常に優れていると考えたので、参考として共有します。編集者をフォローして見てみましょう。皆さんのお役に立てれば幸いです。

はじめに

よく使われる位置のいくつかの属性を説明する前に、「CSSの基礎 - 位置属性の説明」という記事を書きました

一般的によく使われるのは次のとおりです:


{
position: static;
position: relative;
position: absolute;
position: fixed;
}

https://developer .mozilla.org/zh-CN/docs/Web/CSS/position では、次の 3 つの値についても言及しています:


/* 全局值 */
position: inherit;
position: initial;
position: unset;

そのほとんどは position:stickyBar を使用したことがないと推定されます。 。この属性値はまだ実験段階にあります。それをどう説明すればいいでしょうか? <code>position:sticky吧。这个属性值还在试验阶段。怎样描述它呢?

初窥 position:sticky

sticky 英文字面意思是粘,粘贴,所以姑且称之为粘性定位。下面就来了解下这个处于实验性的取值的具体功能及实用场景。

这是一个结合了 position:relative 和 position:fixed 两种定位功能于一体的特殊定位,适用于一些特殊场景。

什么是结合两种定位功能于一体呢?

元素先按照普通文档流定位,然后相对于该元素在流中的 flow root(BFC)和 containing block(最近的块级祖先元素)定位。

而后,元素定位表现为在跨越特定阈值前为相对定位,之后为固定定位。

这个特定阈值指的是 top, right, bottom 或 left 之一,换言之,指定 top, right, bottom 或 left 四个阈值其中之一,才可使粘性定位生效。否则其行为与相对定位相同。

sticky:对象在常态时遵循常规流。它就像是relativefixed的合体,当在屏幕中时按常规流排版,当卷动到屏幕外时则表现如fixed。该属性的表现是现实中你见到的吸附效果。

常用场景:当元素距离页面视口(Viewport,也就是fixed定位的参照)顶部距离大于 0px 时,元素以 relative 定位表现,而当元素距离页面视口小于 0px 时,元素表现为 fixed 定位,也就会固定在顶部。

代码:


{
    position: -webkit-sticky;
    position: sticky;
    top: 0;
}

如下图表现方式:

距离页面顶部大于20px,表现为 position:relative;

距离页面顶部小于20px,表现为 position:fixed;

运用 position:sticky 实现头部导航栏固定

html代码:


<p class="con">
    <p class="samecon">
        <h2 id="标题一">标题一</h2>
        <p>这是一段文本</p>
        <p>这是一段文本</p>
        <p>这是一段文本</p>
    </p>
    <p class="samecon">
        <h2 id="标题二">标题二</h2>
        <p>这是一段文本</p>
        <p>这是一段文本</p>
        <p>这是一段文本</p>
    </p>
    <p class="samecon">
        <h2 id="标题三">标题三</h2>
        <p>这是一段文本</p>
        <p>这是一段文本</p>
        <p>这是一段文本</p>
    </p>
    <p class="samecon">
        <h2 id="标题四">标题四</h2>
        <p>这是一段文本</p>
        <p>这是一段文本</p>
        <p>这是一段文本</p>
    </p>
    <p class="samecon">
        <h2 id="标题五">标题五</h2>
        <p>这是一段文本</p>
        <p>这是一段文本</p>
        <p>这是一段文本</p>
    </p>
    <p class="samecon">
        <h2 id="标题五六">标题五六</h2>
        <p>这是一段文本</p>
        <p>这是一段文本</p>
        <p>这是一段文本</p>
    </p>
</p>

CSS代码:


.samecon h2{
    position: -webkit-sticky;
    position: sticky;
    top: 0;
    background:#ccc;
    padding:10px 0;
}

同理,也可以实现侧边导航栏的超出固定。

生效规则

  • 须指定 top, right, bottom 或 left 四个阈值其中之一,才可使粘性定位生效。否则其行为与相对定位相同。

    • 并且 top bottom 同时设置时,top 生效的优先级高,left right 同时设置时,left 的优先级高。

  • 设定为 position:sticky 元素的任意父节点的 overflow 属性必须是 visible,否则 position:sticky 不会生效。这里需要解释一下:

    • 如果 position:sticky 元素的任意父节点定位设置为 overflow:hidden,则父容器无法进行滚动,所以 position:sticky 元素也不会有滚动然后固定的情况。

    • 如果 position:sticky 元素的任意父节点定位设置为 position:relative | absolute | fixed,则元素相对父元素进行定位,而不会相对 viewprot 定位。

  • 达到设定的阀值。这个还算好理解,也就是设定了 position:sticky 的元素表现为 relative 还是 fixed

  • まずはposition:stickyを見てください

stickyは英語で文字通りスティッキーという意味なので、スティッキーポジショニングと呼びましょう。この実験値の具体的な機能と実践的なシナリオについて学びましょう。

これは、position:relative とposition:fixed の 2 つの位置決め関数を組み合わせた特別な位置決めであり、一部の特殊なシナリオに適しています。

2 つの測位機能を 1 つに組み合わせたものは何ですか?

要素は、まず通常のドキュメント フローに従って配置され、次に、フロー内の要素のフロー ルート (BFC) および包含ブロック (最も近いブロック レベルの祖先要素) を基準にして配置されます。

すると、要素の位置は、特定のしきい値を超える前は相対位置として表示され、それ以降は固定位置として表示されます。

この特定のしきい値は、上、右、下、または左の 1 つを指します。つまり、上、右、下、または左の 4 つのしきい値の 1 つを指定することによってのみ、スティッキー配置が有効になります。それ以外の場合、動作は相対位置決めと同じです。 🎜🎜sticky: オブジェクトは、正常な場合は通常のフローに従います。 relativefixed を組み合わせたようなもので、画面上にあるときは通常の流れに従って入力され、画面からスクロールアウトされると、修正されたように動作します。この属性の性能は、実際に見られる吸着効果です。 🎜🎜 一般的なシナリオ: 要素とページのビューポート (固定配置の基準となるビューポート) の上部との間の距離が 0px より大きい場合、要素は relative で配置されます。要素とページ ビューポート間の距離が 0px 未満の場合、要素は 固定 位置として動作し、上部に固定されます。 🎜🎜コード: 🎜🎜🎜🎜rrreee🎜は次の図で表されます: 🎜🎜はページの上部から20pxより大きいであり、position:relativeとして表されます。 🎜🎜 🎜🎜ページの上部からの距離は20p 未満x (position:fixed;🎜🎜 🎜🎜ヘッド ナビゲーション バーの固定を実現するには、position:sticky を使用します🎜🎜html コード: 🎜🎜🎜🎜rrreee🎜CSS コード: 🎜 🎜🎜🎜rrreee🎜同様に、サイドナビゲーションバーも固定を超えて実装できます。 🎜🎜🎜効果的なルール🎜🎜
  • 🎜 スティッキー性を実現するには、4 つのしきい値 上、右、下、または左 のいずれかを指定する必要があります。効果。それ以外の場合、動作は相対位置決めと同じです。 🎜🎜
    • 🎜 と が設定されていますtop が有効になると、left right が同時に設定された場合、left の方が優先されます。 の方が優先されます。 🎜🎜🎜
    • 🎜position:sticky に設定します。要素の親ノードの overflow 属性は visible である必要があります。それ以外の場合は position:sticky は有効になりません。ここで説明が必要です: 🎜🎜
      • 🎜position:stickyの親がある場合> 要素 ノードの位置が overflow:hidden に設定されている場合、親コンテナはスクロールできないため、 position:sticky 要素はスクロールされずに固定されます。 🎜🎜
      • 🎜 position:sticky 要素の親ノードの位置が position:relative constant に設定されている場合、要素は相対的に配置されます。代わりに親要素は viewprot を基準にして配置されます。 🎜🎜🎜
      • 🎜が設定されたしきい値に達しました。これは比較的簡単に理解できます。つまり、position:sticky を持つ要素が relative として動作するように設定されるか、fixed として動作するように設定されるかは、要素がしきい値によって決定される設定に達します。互換性🎜🎜🎜🎜🎜🎜🎜 この属性の互換性はまだ実験的な属性であり、W3C によって推奨される標準ではありません。 🎜🎜関連する推奨事項: 🎜🎜🎜🎜スティッキーフッターチュートリアルの CSS 実装🎜🎜

        position:sticky の互換性問題を解決する JS メソッド

        Sticky コンポーネントを使用して、sticky エフェクト_JavaScript スキルを使用してタブ ナビゲーションとスクロール ナビゲーションを実装する方法

以上がPosition:sticky を使用してスティッキー レイアウトの例を実装する CSS の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

CSSグリッドは、複雑で応答性の高いWebレイアウトを作成するための強力なツールです。設計を簡素化し、アクセシビリティを向上させ、古い方法よりも多くの制御を提供します。

CSS Flexboxとは何ですか?CSS Flexboxとは何ですか?Apr 30, 2025 pm 03:20 PM

記事では、レスポンシブデザインにおけるスペースの効率的なアラインメントと分布のためのレイアウト方法であるCSS FlexBoxについて説明します。 FlexBoxの使用量を説明し、CSSグリッドと比較し、ブラウザのサポートを詳細に説明します。

CSSを使用してWebサイトを応答するにはどうすればよいですか?CSSを使用してWebサイトを応答するにはどうすればよいですか?Apr 30, 2025 pm 03:19 PM

この記事では、ビューポートメタタグ、柔軟なグリッド、流体メディア、メディアクエリ、相対ユニットなど、CSSを使用してレスポンシブWebサイトを作成するための手法について説明します。また、CSSグリッドとフレックスボックスを使用してカバーし、CSSフレームワークを推奨しています

CSSボックスサイズのプロパティは何をしますか?CSSボックスサイズのプロパティは何をしますか?Apr 30, 2025 pm 03:18 PM

この記事では、要素の寸法の計算方法を制御するCSSボックスサイズのプロパティについて説明します。コンテンツボックス、ボーダーボックス、パディングボックスなどの値と、レイアウト設計とフォームアライメントへの影響について説明します。

CSSを使用してアニメーション化するにはどうすればよいですか?CSSを使用してアニメーション化するにはどうすればよいですか?Apr 30, 2025 pm 03:17 PM

記事では、CSS、キープロパティ、およびJavaScriptとの組み合わせを使用してアニメーションの作成について説明します。主な問題は、ブラウザの互換性です。

CSSを使用してプロジェクトに3D変換を追加できますか?CSSを使用してプロジェクトに3D変換を追加できますか?Apr 30, 2025 pm 03:16 PM

記事では、3D変換、主要なプロパティ、ブラウザの互換性、およびWebプロジェクトのパフォーマンスに関する考慮事項にCSSを使用して説明します。

CSSに勾配を追加するにはどうすればよいですか?CSSに勾配を追加するにはどうすればよいですか?Apr 30, 2025 pm 03:15 PM

この記事では、CSSグラデーション(線形、放射状、繰り返し)を使用して、ウェブサイトのビジュアルを強化し、深さ、フォーカス、および現代の美学を追加します。

CSSの擬似要素とは何ですか?CSSの擬似要素とは何ですか?Apr 30, 2025 pm 03:14 PM

記事では、CSSの擬似要素、HTMLスタイリングの強化における使用、および擬似クラスとの違いについて説明します。実用的な例を提供します。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。