home
twitter
ページトップへ
目次
  • 「position: fixed」で何ができるの?
  • どのように「position: fixed」は使うのか?
  • 固定したい要素に「position: fixed」と指定する。
  • 他のCSSプロパティを一緒に使って、要素の位置を指定する。
  • 「position: fixed」と「top」「left」を使う。
  • 「top」と「left」に「0」以外の値を設定してみる。
  • 「bottom」と「right」も同じ要領で使う!
  • ウィンドウが基準なのを変更するには?
  • 厳密にはViewport (ビューポート)に対して相対的に表示されるから。
  • 「ーの値」も設定できる。
  • 「top」と「bottom」が両方設定されていた場合はどちらが優先されるの?
  • 「left」と「right」が両方設定されていた場合はどちらが優先されるの?
  • まとめ。
about
categories
page
archive
皇帝ペンギンブログ

2023/06/16 (更新日:2024/07/11)

【CSS】「position: fixed」について簡単に解説。【分かりやすい】

Categories > CSSの基本編
CSSの「position: fixed」について簡単に教えてほしい。

この記事はこのような方へ向けて書いています!

この記事で得られる知識!

  • 「position: fixed」を使うと何ができるのか?
  • 「position: fixed」を使った時の挙動
  • 「position: fixed」の使いどころ

それでは、サクッとこの記事で「position: fixed」の使い方を学習しちゃって下さい!

また、下の動画で「position」プロパティについて詳しく解説しているので、一緒に実際にコードを書きながら学びたい方はこちらをどうぞ!
では、内容へ入っていきますね!
目次
非表示
  • 「position: fixed」で何ができるの?
  • どのように「position: fixed」は使うのか?
  • 固定したい要素に「position: fixed」と指定する。
  • 他のCSSプロパティを一緒に使って、要素の位置を指定する。
  • 「position: fixed」と「top」「left」を使う。
  • 「top」と「left」に「0」以外の値を設定してみる。
  • 「bottom」と「right」も同じ要領で使う!
  • ウィンドウが基準なのを変更するには?
  • 厳密にはViewport (ビューポート)に対して相対的に表示されるから。
  • 「ーの値」も設定できる。
  • 「top」と「bottom」が両方設定されていた場合はどちらが優先されるの?
  • 「left」と「right」が両方設定されていた場合はどちらが優先されるの?
  • まとめ。

「position: fixed」で何ができるの?

「position: fixed」を使うことで、要素を画面に固定することが可能です。

たとえ画面をスクロールされたとしても、画面上の一定の位置に、要素を固定することができます。
例えばこんな感じ!
https://chibasyuta.org/wp-content/uploads/2023/06/css_fixed.mp4

上の部分にある、サイトのタイトルなどが書かれているヘッダーと呼ばれる部分が、画面をスクロールしても固定されているのが確認できるかと思います。

これ「position: fixed」で実装されているのですが、こんな感じで使われますね。

ふむふむ。イメージできた!
因みに、このサイトは僕が全てコーディングして作りました!

どのように「position: fixed」は使うのか?

では、具体的にどのような仕組みで要素を動かすのか、書いていこうと思います。

仕組み自体は簡単ですのでサクッといきましょう!

固定したい要素に「position: fixed」と指定する。

header {
    position: fixed;
  }

まずは、この様な感じOKです。

この様に書くと、要素自体が浮かんだ感じになって、他の要素から独立します。

元々要素があった位置は、他の要素で埋められます。

なので、「position: fixed」と指定した要素がなかったかのように扱われます。

他のCSSプロパティを一緒に使って、要素の位置を指定する。

「position: fixed」を使って浮かせた要素を、どこに固定するか指定するには、下記のCSSのプロパティを一緒に使います。

「position: fixed」と一緒に使うプロパティ!

  • top
  • left
  • bottom
  • right

これらの中から、1つか2つを一緒に使う感じですね。

「position: fixed」と「top」「left」を使う。

まず、下の様に要素を配置しました。

外側の紫の枠線は、ウィンドウだと思って下さい。

「position: fixed」と「top」と「left」を使う。1

そこで、この様なコードを書いてみます。

.pink {
    position: fixed;
    top: 0;
    left: 0;
  }

ピンクの要素に対して、「position: fixed」を指定して、「top」と「left」も一緒に使いました。

すると、下の様になります。

「position: fixed」と「top」と「left」を使う。2

「top」で使われる基準の位置は、特に何も設定していなければ、画面の上端になります。

それと同じように、「left」で使われる基準の位置は、特に何も設定していなければ、画面の左端になります。

今回は、「top: 0」「left: 0」としているので、基準の位置と要素の位置が揃っています。

ふむふむ。特に指定が無ければ、基準は画面の上端や左端となるのですね!

「top」と「left」に「0」以外の値を設定してみる。

まずは、先ほどと同じ様に、要素を配置します。

外側の紫の枠線は、ウィンドウだと思って下さい。

「position: fixed」と「top」と「left」を使う。1

そこで、下記の様なコードを書いてみます。

.pink {
    position: fixed;
    top: 30px;
    left: 20px;
  }

すると、下の様になります。

「top」と「left」に「0」以外の値を設定する。

「top: 30px」とすると、基準の位置であるウィンドウの上端から、「30px」動いた位置に要素が固定されます。スクロールしてもずっとこの位置です。

そして、「left: 20px」とすると、基準の位置であるウィンドウの左端から、「20px」動いた位置に要素が固定されます。

そんな感じで固定する位置を指定するんだね!面白い。

「bottom」と「right」も同じ要領で使う!

「position: fixed」と「bottom」と「right」を使う。

まずは、こちらの画像を見てほしいです。

右下に上まで戻ることができるボタンが設置されていると思うんですけど、これを「top」と「left」を使って配置しようとするとレスポンシブのことも考えると難しいですよね。

ここで使えるのが「bottom」と「right」です。

.btn {
    position: fixed;
    bottom: 10px;
    right: 10px;
  }

この様に書けば、「top」と「left」の時と同じ要領で要素を配置できます。

違いは、「bottom」とすると基準が画面の下端になることとですね。

「right」の基準は画面の右端です。

なるほど!具体的な使い方もイメージできてきたぞ!

ウィンドウが基準なのを変更するには?

先ほどから、「特に指定が無ければ」基準はウィンドウになるとお伝えしてきました。

実は、基準をウィンドウじゃなくする方法もあります。

  • transform
  • perspective
  • filter

これらのCSSプロパティが設定されている祖先要素があれば、その要素がウィンドウの代わりに基準となります。

つまり「none」以外の値が指定されている要素があれば、その要素に基準が変更されます。

基準の変更はおすすめ、しない。
https://chibasyuta.org/wp-content/uploads/2023/06/fixed_kizyun.mp4

上の動画の様に、基準自体はウィンドウから変更できるのですが、「固定」できなくなってしまいます。

なので、「fixed」を使う際は、基準の変更をしないように注意して下さい。

スクロールできるようにしてもダメ。

背景色が青くなっている要素の親要素に高さを設定して、スクロールできる形にしてみても、固定はされません。

なので、固定したいなら「基準の変更はしない」これがいいんじゃないかなと思います。

上手くいかない時は、基準が変更されていないか確認してみると良さそうだね!

厳密にはViewport (ビューポート)に対して相対的に表示されるから。

厳密に言うと、「position: fixed」とすると、要素はViewport (ビューポート)に対して配置されるので、スクロールしたとしても画面の一定の場所に様相があるように見える、ということです。

それに対して、基準が変更されて、何か他の要素になってしまうと、「position: absolute」と同じように、その基準となる要素に対して、相対的に「position: fixed」と指定した要素の位置が決まるので、画面に固定することはできず、スクロールすると流れていってしまいます。

「ーの値」も設定できる。

「top」「left」「bottom」「right」には「ー(マイナス)の値」も設定できます。

どうなるかと言うと、「 + (プラス) の値」を設定した時とは、反対の方向へ要素が動きます。

ここまでで、基本的な「position: fixed」の使い方が伝わったと思います!なかなか便利そうですよね~。

「top」と「bottom」が両方設定されていた場合はどちらが優先されるの?

「top」と「bottom」という2つのプロパティがどちらも設定されていた場合は、それらが対抗しまうので、どうなるの?

結論、「top」が優先されます。

「bottom」が効かない!とならないようにです!

「left」と「right」が両方設定されていた場合はどちらが優先されるの?

結論、日本語などでは基本的に「left」が優先されます。

詳しくは、「direction」プロパティの値が、「ltr」の場合は、「left」が優先されます。

逆に、「direction」プロパティの値が、「rtl」の場合は、「right」が優先されます。

日本語や英語などは、テキストは左から右に流れていくので、意識しなくても「left」が優先されますね。

ペルシャ語、アラビア語、ヘブライ語などの、書字方向が右から左の言語などでは、「direction」プロパティの値に「rtl」が使われると思うので、「right」が優先されます。

「left」が優先される!と覚えておけば基本的に問題はなさそうだね!

まとめ。

「position: fixed」を使うことで、要素を浮かせて、さらに固定できる。

なので画面をスクロールしても、画面上の一定の位置に留まり続ける。

厳密の言うと、初期設定だと、Viewport (ビューポート)に固定されるので、要素が画面に固定されているように見える。

要素の配置は、下記のCSSのプロパティの内の1つか2つを使ってする。

  • top
  • left
  • bottom
  • right

これらのプロパティには「 ー(マイナス)」の値も設定できて、「 + (プラス)」の値を設定した時と、逆方向に作用する。

「top」と「bottom」が両方設定されていた場合は、「top」が優先される。

「left」と「right」だと、基本的に「left」が優先される。厳密には、これは「direction」プロパティによって変わる。

特に指定がない場合は、基準はウィンドウとなる。

祖先要素の下記のプロパティの値が「none」じゃないものがあれば、その要素が基準になる。

  • transform
  • perspective
  • filter

ですが、これだと画面に要素を固定できなくなるので、「position: fixed」と一緒に使うのは、おすすめしない。

逆に、上手くいかない時は、これを疑うとよい。

こんな感じですかね!
また、下の動画で「position」プロパティについて詳しく解説しているので、一緒に実際にコードを書きながら学びたい方はこちらをどうぞ!

それでは、こんな感じでこの記事を終わります!

ではまた!

自分のロゴ!

皇帝ペンギン

全力で、書きます。
少しでもお役に立てたら幸いです。
楽しんで読んで下さい 。-_- 。
よろしくお願いします!

x(旧twitter) youtube
Categories
  • トップへ
  • ITパスポート (1)
  • programming (168)
    • CSSのアニメーション編 (26)
    • CSSのグリッドレイアウト編 (1)
    • CSSのセレクター編 (58)
    • CSSのフレックスボックス編 (1)
    • CSSのメディアクエリー編 (7)
    • CSSの基本編 (34)
    • HTMLのformタグ編 (1)
    • HTMLの基本編 (3)
    • JavaScriptの入門編 (30)
    • JavaScriptの基本編 (5)
    • Web制作をする環境を整えよう! (1)
  • Uncategorized (23)
  • VScode (1)
  • おすすめ商品! (1)
  • クラロワ (2)
  • マーケティング (17)
  • 大学生活 (7)
  • 心理学 (9)
  • 映画 (1)
  • 法学 (4)
  • 経済学 (4)
  • 読書 (7)
Pages
  • プライバシーポリシー
  • 免責事項
  • プロフィール
Archive
  • 2025年3月 (1)
  • 2025年1月 (9)
  • 2024年12月 (13)
  • 2024年11月 (5)
  • 2024年10月 (10)
  • 2024年9月 (15)
  • 2024年8月 (5)
  • 2024年7月 (6)
  • 2024年6月 (5)
  • 2024年5月 (10)
  • 2024年4月 (24)
  • 2024年3月 (11)
  • 2024年2月 (6)
  • 2024年1月 (10)
  • 2023年12月 (4)
  • 2023年11月 (3)
  • 2023年10月 (2)
  • 2023年9月 (3)
  • 2023年8月 (6)
  • 2023年7月 (3)
  • 2023年6月 (8)
  • 2023年5月 (2)
  • 2023年3月 (1)
  • 2023年2月 (1)
  • 2022年10月 (2)
  • 2022年9月 (2)
  • 2022年8月 (8)
  • 2022年7月 (2)
  • 2022年6月 (6)
  • 2022年5月 (9)
  • 2022年4月 (2)
  • 2022年2月 (4)
  • 2021年12月 (1)
  • 2021年11月 (4)
  • 2021年10月 (8)
  • 2021年9月 (14)
  • 2021年8月 (6)
  • 2021年6月 (1)
  • 2021年5月 (2)
  • 2021年4月 (1)
  • 2021年3月 (1)
  • 2021年2月 (2)
  • 2020年10月 (1)
  • 2020年7月 (1)
  • 2020年4月 (1)
  • 2020年1月 (1)
  • 2019年12月 (2)
© Copyright Syuta Chiba, 2019 All Rights Reserved.