目的
次の2つの要件を満たす、Webサイトのナビゲーションを実装します。
- スクロールしても画面に表示され続ける
- 右上に配置される
今回はa
タグを利用した各ページへのリンクの実装などは行わず、テキストの配置方法に関わるCSSのみに限定して、記事を書きます。
ナビゲーションとは
サイトナビゲーションとは、Webサイト上で目的のページを探す手がかりとなる、リンク付きの表示のことです。
意外と知らない?Webサイトの「ナビゲーション」の種類と役割をご説明します
Webサイト上部などに設置されている、各ページや、同ページ内の見出しへ飛ぶことのできるリンクのようなものでしょうか。
トヨタ自動車WEBサイトより次のスクリーンショットを撮影しました。
ここでいうところのラインアップ、購入サポート、etc... といったものが、ナビゲーションです。
実行環境(再現環境)
- CodePen
- GoogleChrome バージョン: 88.0.4324.150
テキストを画面に固定する
position
は、ボックス要素を固定するプロパティです。
その中でfixed
という値を指定することで、指定したテキストを画面内に固定します。
この記述により、スクロールを行っても画面内に指定されたテキストが表示され続けます。
<header>私たちについて お品書き 参加方法</header>
header{
position: fixed;
}
テキスト(テキストを要素に持つボックス)を画面右に配置する
ここまでの作業で、スクロールを行っても画面内にテキストが表示され続けるようになりました。
しかし、現状ではテキストは次の画像のように、画面左上に表示されています。
本記事においては、画面右上にテキストボックスが表示されることも、目的に含まれています。
この状態から、テキストを画面右上に表示されるようにソースコードを書き換えます。
ここでブラウザ上でF12
キーを使って、デベロッパーツールを開いてみます。
次の画像から、私たちについて お品書き 参加方法
というテキストが、ひとつのボックスとして定義されていることが確認できます。
失敗例
例えばここで、text-align: center
をこのボックスに付与したとしても、テキスト位置がボックス内で右揃えになるだけなので、目的は達成されません。
画面の右側にテキストが配置されるわけではありません。
成功例 画面右にテキスト(ボックス)を配置する
cssにright : 30px;
を追加し、次のようなCSSファイルに書き換えます。
right
は、ボックスの配置位置を設定するプロパティです。
この書き換えられた記述は、画面右から30px
の位置にボックスを配置することを示します。
画面右端ではなく、少し余白を作りたい場合は30px
など指定すればよいです。
余白なしでよいなら、right: 0;
で構いません。
このソースコードにより、次に示す画像のように、右上配置にすることができました。
<header>私たちについて お品書き 参加方法</header>
header{
position: fixed;
right: 30px;
}
補足
right
以外にも、top
, left
, bottom
で位置を指定することが可能です。
ただし、left
とright
、top
とbottom
は競合します。
もう少し具体的に説明すると、left
とright
プロパティ、top
とbottom
プロパティが混在している場合、それぞれleft
, top
の値が優先され、right
, bottom
の値は適用されないようです。