こんにちは!静岡県浜松市でWEBデザイナーをしています小瀧です。
CSSを書いていると、position:absoluteやfixedを指定したあとに、topやleft、right、bottomを並べて書くことがよくあります。
特にレイアウト調整やUIパーツ制作では、同じような指定を何度も繰り返すことになり、コードが冗長になりがちです。
そんなときに知っておきたいのが、CSSのinsetプロパティです。
insetは、top right bottom left をまとめて指定できる比較的新しいCSSプロパティで、正しく使えばコード量を減らし、可読性も大きく向上します。
しかし、insetはまだ馴染みが薄く、使いどころが分からないまま敬遠されているケースも少なくありません。
この記事では、CSSのinsetについて、基本から実務での使い方まで、Web制作の現場視点で丁寧に解説していきます。
CSSのinsetとは何か
insetとは、要素の上下左右の位置を一括指定できるCSSプロパティです。
positionがabsolute、fixed、stickyのいずれかで指定されている場合に使用できます。
従来は、以下のように個別に指定していました。
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
これをinsetを使うと、次のように一行で書けます。
position: absolute;
inset: 0;
このように、insetはtop right bottom leftの省略記法として使えます。
insetの書き方と指定ルール
insetは、marginやpaddingと同じように、指定する値の数によって意味が変わります。
- 1つ指定:上下左右すべて同じ値
- 2つ指定:上下 / 左右
- 3つ指定:上 / 左右 / 下
- 4つ指定:上 / 右 / 下 / 左
例として、上下10px、左右20pxに配置したい場合は次のように書けます。
position: absolute;
inset: 10px 20px;
このように、直感的な指定ができるのがinsetの強みです。
top・left指定との違い
topやleftを使う方法と比べたときの、insetの特徴を整理します。
- コード量が少なくなる
- 指定漏れを防げる
- 意図が一目で分かる
特に、全方向を同じ値で囲むようなUIでは、insetを使うことでレイアウト意図が明確になります。
一方で、上下だけ、左右だけといった細かい調整をする場合は、従来のtopやleft指定の方が分かりやすいケースもあります。
使い分けが重要です。
実務でよく使うinsetのパターン
Web制作の現場で、insetが特に活躍するケースを紹介します。
See the Pen
Untitled by 小瀧賢 (@ekwwawpb-the-styleful)
on CodePen.
例えば、ボタン全体を覆うリンクや、hover用の擬似要素では、inset:0;を指定するだけで実装が完結します。
このシンプルさは、保守性の高いCSSを書くうえで大きなメリットです。
注意点とブラウザ対応
insetは比較的新しいプロパティですが、現在は主要モダンブラウザで問題なく使用できます。
ただし、古い環境を強く意識する案件では、topやleftを併記する判断も必要です。
また、positionが指定されていない要素にinsetを書いても効果はありません。
この点は初学者がつまずきやすいポイントなので注意しましょう。
まとめ
CSSのinsetは、上下左右の位置指定をまとめて書ける便利なプロパティです。
position指定と組み合わせることで、コードを簡潔にし、意図の伝わるCSSが書けるようになります。
topやleftを無理に置き換える必要はありませんが、場面に応じて使い分けることで、CSS設計の質は確実に向上します。
ぜひ、日々の制作に取り入れてみてください。