Quantcast
Channel: CSSタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 9004

画面右上にナビゲーションを実装する

$
0
0

目的

次の2つの要件を満たす、Webサイトのナビゲーションを実装します。

  • スクロールしても画面に表示され続ける
  • 右上に配置される

今回はaタグを利用した各ページへのリンクの実装などは行わず、テキストの配置方法に関わるCSSのみに限定して、記事を書きます。

ナビゲーションとは

サイトナビゲーションとは、Webサイト上で目的のページを探す手がかりとなる、リンク付きの表示のことです。
意外と知らない?Webサイトの「ナビゲーション」の種類と役割をご説明します

Webサイト上部などに設置されている、各ページや、同ページ内の見出しへ飛ぶことのできるリンクのようなものでしょうか。
トヨタ自動車WEBサイトより次のスクリーンショットを撮影しました。
ここでいうところのラインアップ、購入サポート、etc... といったものが、ナビゲーションです。

image.png

実行環境(再現環境)

  • CodePen
  • GoogleChrome バージョン: 88.0.4324.150

テキストを画面に固定する

positionは、ボックス要素を固定するプロパティです。
その中でfixedという値を指定することで、指定したテキストを画面内に固定します。
この記述により、スクロールを行っても画面内に指定されたテキストが表示され続けます。

index.html
<header>私たちについて お品書き 参加方法</header>
main.css
header{position:fixed;}

テキスト(テキストを要素に持つボックス)を画面右に配置する

ここまでの作業で、スクロールを行っても画面内にテキストが表示され続けるようになりました。
しかし、現状ではテキストは次の画像のように、画面左上に表示されています。

image.png

本記事においては、画面右上にテキストボックスが表示されることも、目的に含まれています。
この状態から、テキストを画面右上に表示されるようにソースコードを書き換えます。

ここでブラウザ上でF12キーを使って、デベロッパーツールを開いてみます。
次の画像から、私たちについて お品書き 参加方法というテキストが、ひとつのボックスとして定義されていることが確認できます。

image.png

失敗例

例えばここで、text-align: centerをこのボックスに付与したとしても、テキスト位置がボックス内で右揃えになるだけなので、目的は達成されません。
画面の右側にテキストが配置されるわけではありません。

image.png

成功例 画面右にテキスト(ボックス)を配置する

cssにright : 30px;を追加し、次のようなCSSファイルに書き換えます。
rightは、ボックスの配置位置を設定するプロパティです。

この書き換えられた記述は、画面右から30pxの位置にボックスを配置することを示します。
画面右端ではなく、少し余白を作りたい場合は30pxなど指定すればよいです。
余白なしでよいなら、right: 0;で構いません。

このソースコードにより、次に示す画像のように、右上配置にすることができました。

index.html
<header>私たちについて お品書き 参加方法</header>
header{position:fixed;right:30px;}

image.png

補足

right以外にも、top, left, bottomで位置を指定することが可能です。
ただし、leftrighttopbottomは競合します。

もう少し具体的に説明すると、leftrightプロパティ、topbottomプロパティが混在している場合、それぞれleft, topの値が優先され、right, bottomの値は適用されないようです。

参考


Viewing all articles
Browse latest Browse all 9004

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>