ウェブページの内部アンカーポイントを実現するための純粋なCSSの上下オフセットコード例

ウェブページの内部アンカーポイントを実現するための純粋なCSSの上下オフセットコード例

最近、「フットボール ナビゲーション」Web サイトに取り組んでいるときに、上部の固定ナビゲーション バーに隠れないように、ジャンプ後に Web ページの内部アンカーを少し下に移動する必要があるという要件に遭遇しました。

ネットでいくつか方法を探してみたところ、ジャンプを制御するためにjsを使うものがほとんどでした。その後、海外の開発者の個人ブログでCSSだけで実装した方法を見つけました。とてもシンプルだと思ったので、その実装方法を翻訳してみました。通常、Web ページの上部にある固定ナビゲーション バーのスタイルは次のように実装されます。

<div class="header" style="position: fixed; top: 0;"></div>

その後、ジャンプ先のリンクのリストが表示されます。

<ul>
  <li><a href="#section1">アンカーテキスト</a></li>
  <li><a href="#section2">アンカーテキスト</a></li>
</ul>

要件は、上記の各リンクをクリックすると、ページが対応する ID のアンカー位置に配置されることです。

<div class="section" id="section1"></div>
<div class="section" id="section2"></div>

ただし、上部に position:fixed の div がある場合、このアンカー ポイントに配置すると、アンカー ポイント内のコンテンツの上部が上部に固定された div によって覆われてしまいます。解決策としては、配置された各コンテンツに空のページ アンカーを追加し、この空の要素にジャンプするページ要素 ID を配置し、ジャンプ時のオフセットを実現するために空の要素の CSS の習熟度を設定します。定義する空の要素は、クラスがアンカーである div であり、div の ID は、上のリンクがジャンプする先の ID に設定されます。

<div class="anchor" id="section1"></div>
<div class="section"></div>
<div class="anchor" id="section2"></div>
<div class="section"></div>

この空要素の CSS プロパティは次のとおりです。

。アンカー{
  表示: ブロック;
  height: 60px; /*上部固定と同じ高さ*/
  margin-top: -60px; /*上と同じ高さに固定*/
  可視性: 非表示;
}

この時点で、私たちが望んでいた内部アンカーポイントジャンプの機能が実現しました。

つまり、ここでのオフセット値は、ジャンプ時に空の要素が占める高さです。このプレースホルダー要素は、アンカー ポイントがジャンプするときに必要なオフセット効果を実現するために使用されます。

これで、純粋な CSS による内部アンカー ポイントのジャンプ アップとダウン オフセットのサンプル コードの紹介に関するこの記事は終了です。CSS 内部アンカー ポイントのジャンプ アップとダウン オフセットのコンテンツの詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後も 123WORDPRESS.COM を応援していただければ幸いです。

<<:  DockerでPrometheusをインストールする詳細なチュートリアル

>>:  div+cssとウェブ標準ページの利点

推薦する

vue-cli 3 で vue-bootstrap-datetimepicker 日付プラグインを使用する方法

需要背景最近、Vue を使用してフロントエンド エンジニアリング システムと組み合わせ、以前のデモを...

MySQL の Docker インストールと設定手順

目次序文環境インストールMySQLコンテナを作成して起動する思い出させるMySQLコンテナコマンドを...

MySQL 8.0.18コマンドの詳細な説明

解凍したフォルダ C:\web\mysql-8.0.11 を開き、フォルダ内に my.ini 構成フ...

JavaScript の基礎におけるデータ型の詳細な説明

目次1. データ型1.1 なぜデータ型が必要なのか? 1.2 変数のデータ型1.3 データ型の分類2...

バックアップ データをインポートするときに innodb_index_stats がエラーを報告する場合の主キー競合の解決方法

障害の説明percona5.6、mysqldump フルバックアップ、バックアップデータのインポート...

JavaScript 高度なカスタム例外

目次1. コンセプト1.1 エラーと例外とは何ですか? 1.2 異常の分類2. 例外処理2.1try...

mysql バッチで大量のデータを削除する

mysql バッチで大量のデータを削除する1000万件のレコードを持つテーブル(syslogs)があ...

WeChatアプレットのスクロールビューの改行問題を解決する

今日、小さなプログラムを書いていたときに、スクロールビューを使用したのですが、スクロールビュー内のテ...

Reactの新バージョンのライフサイクルフック機能と使用方法の詳細な説明

旧ライフサイクルと比較して 3つのフックが廃止され、2つの新しいフックが追加されましたReact16...

MySQL最適化ツール(推奨)

序文今日 GitHub を閲覧していたところ、SQL を最適化および書き換えるための sora とい...

React 構成 px 変換 rem メソッド

関連する依存関係をインストールするnpm i lib-flexible --save npm i p...

MySQLのインストールと設定方法のグラフィックチュートリアル(CentOS7)

1. システム環境[root@localhost ホーム]# cat /etc/redhat-re...

Dockerサーバーのストレージリソースプール不足問題の解決

目次1. 問題の説明2. 問題分析3. 問題解決1. Dockerのディスク使用量を確認する2. 再...

Navicat がリモートで SQL Server に接続し、MySQL に変換する詳細な手順

序文最近、プロジェクトで SQL Server を使用するプログラムに遭遇しました。このデータベース...

MySQL 外部キー制約とテーブル関係の概要

目次外部キーテーブルの関係を決定する方法テーブル関係を作成する方法1対多の関係 - 従業員テーブルと...