【CSS】要素を画面に固定するposition: fixed;の使い方と注意点

CSS
スポンサーリンク

こんにちは朱夏です。

今回は、CSSで要素を画面上に固定する「position: fixed;」の使い方と、使うときの注意点について解説していきたいと思います。

 

朱夏
朱夏

メニューバーとかトップに戻るボタンなどを固定するのに使えそう。

でも注意点って何だろう?

 

 

position: fixed;」の注意点は、他の要素に干渉できない事です。
後ほど詳しく解説していきたいと思います。

それではいってみましょう。

 

[もくじ]
position: fixed;の基本的な書き方
トップにメニューを固定してみる
注意点と回避方法
あとがき

 

 

position: fixed;の基本的な書き方

基本的な書き方を紹介します。
先ずはサンプルをどうぞ。

See the Pen
MWaKmZm
by 朱夏 (@syunatsu1)
on CodePen.

 

基本的な書き方としては、固定させたい要素に対して「position: fixed;」を書くだけです。
position: fixed;」は絶対位置になるので、画面の左上を基準にして配置してあげてください。

 

 

トップにメニューを固定してみる

具体的なサンプルとして、画面のトップにメニューを固定してみたいと思います。

 

See the Pen
mdeVMyR
by 朱夏 (@syunatsu1)
on CodePen.

 

 

こんな感じです。
画面に常に表示できるので、操作しやすいページ作りに使えると思います。

 

注意点と回避方法

position: fixed;」の注意点を解説します。

  • 他の要素と干渉しない

 

これは、一つ例を見ていただきたいと思います。
初めに、「position: fixed;」を使用していない状態。

See the Pen
yLYeoWB
by 朱夏 (@syunatsu1)
on CodePen.

 

解りやすいように緑の丸を表示しています。

この状態で、「position: fixed;」を有効にしてみます。

See the Pen
rNOxGBe
by 朱夏 (@syunatsu1)
on CodePen.

 

 

position: fixed;」を有効にする以外の変化はありませんが、結果をみると丸がメニューバーに隠れてしまっています。

これは、メニューバーが「position: fixed;」を付けたことにより、別レイヤーの要素となり、他の要素と触れ合うことが出来なくなってしまい、要素が重なってしまう現象です。

回避方法として、以下の3つの方法を上げておきます。

  1. margin-topで調整する
  2. ダミーのメニューバーを重なる部分に配置する
  3. 重なっても問題ないデザインにする

 

重なっている部分をいかにして解決するかということですね。
重ならない様に余白やダミーでずらすか、重なってもいいやって言うデザインにするか、センスが問われる部分です。

 

 

あとがき

というわけで、要素を画面に固定する「position: fixed;」について書いてみました。

今回のまとめはこちら。

  • position: fixed;」を付けたら画面に固定される
  • 固定した要素に隠れる部分がある
  • 隠れる部分をどうやって回避するか

 

JavaScriptのようにフェードインしたりフェードアウトしたりはしませんが、TOPへ戻るボタンを常時追従させたりする事も出来ます。

上手く使用してデザインの幅を広げていきたいですね。

今回は以上です。
次回もよろしくお願いします。

 

タイトルとURLをコピーしました