知っておくと便利なCSSの単位: 相対単位が主流の現在、絶対単位(px, in, mmなど)は特定のケースで非常に役立ちます
Post on:2024年4月16日
「知っておくと便利なCSSの単位」シリーズの最後となる今回は、絶対単位(px
, in
, mm
など)の使いどころを紹介します。
Webサイトやスマホアプリを実装する際に使用する単位は、相対単位が主流ですが、現在でも絶対単位は特定のケースで非常に役立ちます。
Absolute length units -Going beyond pixels and (r)ems in CSS
by Brecht De Ruyte
下記は各ポイントを意訳したものです。
※当ブログでの翻訳記事は、元サイト様にライセンスを得て翻訳しています。
- はじめに
- CSSで絶対単位を使用する理由1: 特定のピクセルパーフェクトなレイアウト
- CSSで絶対単位を使用する理由2: 外部メディアとの連携
- CSSで絶対単位を使用する理由3: 印刷または固定サイズのレイアウト
- CSSで使用できる絶対単位
- このシリーズの終わりに
はじめに
通常、このようなシリーズを書く場合、ベストを最後に残す傾向がありますが、このシリーズでもベストが最後になりました。
私は完全主義者なので、この「知っておくと便利なCSSの単位」シリーズの最後は絶対単位、つまりほとんどの場合は絶対に避けたい単位(ジョークですよ)について解説します。この絶対単位は特定のケースで非常に役立ちます。
このページに初めてアクセスした人は、このシリーズの最初から始めることをお勧めします。とは言え、一般的に絶対単位はレスポンシブやアクセシブルでは推奨されませんが、CSSは相対的な単位だけでなく、絶対的な単位を使用する理由がいくつかあります。
このシリーズの記事は、下記からどうぞ。
- フォントに基づく相対単位(em, rem, cap, ch, ex, ic, lhなど)の便利な使い方を解説
- ビューポートに基づく相対単位(vw, vh, lvh, svh, dvh, vb, viなど)の便利な使い方を解説
- コンテナクエリに基づく相対単位(cqw, cqh, cqi, cqb, cqmin, cqmaxなど)の便利な使い方を解説
CSSで絶対単位を使用する理由1: 特定のピクセルパーフェクトなレイアウト
場合によっては、異なるデバイスやスクリーンサイズで一貫性を保つ正確なレイアウトが必要になることがあります。ピクセル(px
)などの絶対単位はこのコントロールを提供し、表示デバイスやページのズームに関係なく、その要素をピクセルで定義したサイズに正確に表示することを保証します。
たとえば、アイコンなどの特定のデザイン要素に役立ちます。しかし、特定のスクリーン(たとえば、店舗のタッチスクリーンのテレビ)に特化されたアプリを作成する場合には、さらに興味深いものになります。このような場合、ユーザーは設定でアクセシビリティコントロールにアクセスできないため、ズームは主に物理ズームかピンチズームになります。
CSSで絶対単位を使用する理由2: 外部メディアとの連携
特定の寸法をもつ画像や埋め込みコンテンツなどの外部メディアを扱う場合、それらの寸法に基づいた絶対単位を使用すると、レイアウトのスケーリングに役立ちます。
たとえば、画像の幅が300px
の場合、要素の幅を300px
に設定すれば、正確に意図したサイズで表示されます。この場合、1つのカラムに自動フローがあり、画像を含むカラムを300px
に固定したグリッドを選択できます。
See the Pen
Using absolute px unit for a grid by coliss (@coliss)
on CodePen.
CSSで絶対単位を使用する理由3: 印刷または固定サイズのレイアウト
固定サイズの出力を使用する印刷レイアウトやアプリの場合、センチメートル(cm
)やミリメートル(mm
)やインチ(in
)などの絶対単位が適切な場合があります。これらの単位は物理的な寸法に基づいており、最終的な印刷出力に直接変換されるため、異なるプリンターや用紙サイズでも一貫したサイズ設定が保証されます。これが絶対単位を使用する唯一完璧な理由だと私は考えています。
例を挙げてみましょう。すこし前にスクロール駆動型アニメーションのデモをいくつか作成したのですが、この小さなタイムラインは印刷版を作成するのに最適な使用例だと思いました。CSSで絶対単位をいつ使用するかを示しています。
下記の右上「Edit on CodePen」をクリックしてデモページを開き、印刷してみてください。
See the Pen
Print example by coliss (@coliss)
on CodePen.
CSSで使用できる絶対単位
CSSで使用できる絶対単位を見てましょう。特に、印刷用のスタイルシートを作成する必要がある場合は、必ず目を通しておいてください。
-
- ピクセル(
px
) - もっとも一般的に使用される絶対単位で、ディスプレイ上の1ドット(ピクセル)を表します。
- ピクセル(
-
- インチ(
in
) - 1インチを表し、印刷レイアウトや特定のサイズ要件に便利です。
- インチ(
-
- センチメートル(
cm
) - 1センチメートルを表し、これも印刷レイアウトでよく使用される単位です。
- センチメートル(
-
- ミリメートル(
mm
) - 1ミリメートルを表し、印刷レイアウトでより細かく制御するためにセンチメートルと並んでよく使用されます。
- ミリメートル(
-
- 1/4ミリメートル(
Q
) Q
という単位は日本語組版で非常に一般的で、日本で使用されている主要なプロ用組版システムではほぼすべてにサポートされています。たとえば、InDesignの日本語版ではフォントサイズの単位としてQ
が使用されています。
- 1/4ミリメートル(
-
- ポイント(
pt
) - 1/72インチに相当する単位で、歴史的にタイポグラフィに使用されてきましたが、現在ではあまり一般的ではありません。
- ポイント(
-
- パイカ(
pc
) - 1/6インチに相当する単位で、タイポグラフィに使用されますが、ポイントよりさらに一般的ではありません。
- パイカ(
PDFドキュメントにおける単位の注意事項
注意すべき点は、印刷用のスタイルシートはPDFドキュメントとは異なるということです。PDFビューア内のズームレベルや異なるスクリーンサイズに基づいて調整する必要がある柔軟なPDFレイアウトを作成する場合は、絶対単位の使用を避け、その代わりに相対単位を使用する必要があります。
これは特に、さまざまなコンテンツタイプを持つドキュメントをはじめ、さまざまな表示媒体で読みやすさを維持しなければならないレイアウトに関連する可能性があります。PDFドキュメントを作成する際に単位を選択するときは、制御性と応答性のトレードオフを考慮してください。
このシリーズの終わりに
このシリーズを書き、CSSの単位を見つめ直すことはとても楽しかったです。いくつかのデモを作成したことで、日常的にどのように単位を使いこなすべきかをより深く理解できるようになりました。
これらのデモを作成することは私にとって挑戦でしたが、この挑戦によって少しだけ良いデベロッパーになれたと思います。次の挑戦が何をもたらすかはまだ分かりませんが、今のところはこのCSSの単位の旅を振り返ることができて嬉しく思います。
みなさんの中にもCSSの単位を楽しんでくれたり、より理解を深め、もしかしたら同じようにデモを作って実践する人がいるかもしれません。もしそうなら、ぜひ共有して、より多くの人にピクセルとr(em)
を超えることができるようにしましょう。
sponsors