0Pricing
CSS Academy · レッスン

固有サイズ設計: コンテンツ基準のサイズ設定

min-content、max-content、fit-contentを使った固有サイズ設定を活用し、コンテンツを基準としたレイアウトを作成します。

「固有サイズ設計: コンテンツ基準のサイズ設定」はCoddyKit上の無料CSS Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCSS Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 CSS Academyコースには全4レッスンが含まれています。

Intrinsic Designとは

Jen Simmonsが提唱したIntrinsic Designとは、明示的なピクセル寸法を指定するのではなく、コンテンツに自らのサイズを決めさせる考え方です。CSSには、ブレークポイントごとの上書きに頼らず、レイアウトを自然にレスポンシブにするintrinsic sizingキーワードが用意されています。

min-contentとmax-content

min-content:コンテンツがはみ出さずに収まる最小サイズです(テキストの場合は、単語の境界ごとに折り返します)。max-content:折り返さず、コンテンツを1行で表示するために必要なサイズです。どちらも実際のコンテンツの寸法を反映します。

fit-content

fit-contentはmin(max-content, max(min-content, available))と同等です。利用可能な領域まではコンテンツに合わせて広がり、それを超えると折り返します。テキストと同じ幅にしつつ、コンテナの幅を超えないようにしたいボタンやラベルに最適です。

Gridでのminmax()

grid-template-columnsのminmax(min, max)は、トラックの最小サイズと最大サイズを設定します。minmax(200px, 1fr)を指定すると、少なくとも200pxの幅を持ち、必要に応じて広がる列が作成されます。auto-fillと組み合わせると、コンテンツのサイズに応じて自然にレスポンシブになるグリッドを作成できます。

auto-fillとauto-fit

どちらも、行に可能な限り多くのトラックを配置します。auto-fillは空のトラックを維持するため、列数が保たれます。auto-fitは空のトラックを折りたたむため、配置済みのトラックが領域いっぱいに広がります。利用可能な幅いっぱいに広がるコンテンツ主導のレイアウトには、auto-fitを使用します。

clamp()による流動的なタイポグラフィ

clamp(min, preferred, max)は、値を指定した範囲内に制限します。font-size: clamp(1rem, 2.5vw, 1.5rem)は、ビューポートの幅に応じて1remから1.5remの間で拡大縮小します。メディアクエリを使わずに流動的なタイポグラフィを実現できます。

コンテンツ主導のグリッド列

grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr))は、非常に狭いビューポートでは1列になり、空間に余裕ができると自動的に列を追加するレスポンシブなグリッドを作成します。メディアクエリもJavaScriptも必要ありません。

aspect-ratioによるIntrinsic Sizing

aspect-ratio: 16/9を指定すると、幅が変化しても要素の比率が維持されます。width: 100%と組み合わせれば、動画コンテナが親要素いっぱいに広がり、JavaScriptやパーセント指定のpaddingハックを使わずに常に16:9を保てます。

論理プロパティ

Intrinsic Designは、CSSの論理プロパティ(inline-size、block-size、margin-inline)と組み合わせることで、横書きと縦書きのどちらでも機能するレイアウトを実現します。Intrinsic Sizingは、書字方向にも自動的に適応します。

Intrinsic LayoutとFixed Layoutの比較

固定:width: 300px — コンテンツに関係なく常に300pxです。Intrinsic:width: fit-content — 制約の範囲内で、コンテンツに合わせた幅になります。固定レイアウトでは調整のためにブレークポイントが必要ですが、Intrinsic Layoutはコンテンツと周囲の状況に応じて自動的に調整されます。

過剰な設計を避ける

Intrinsic Designは、コンテンツのサイズが自然に変化する場合に最も効果を発揮します。サイズが既知で均一なコンテンツにIntrinsic Sizingを無理に適用すると、メリットがないまま複雑さが増します。ナビゲーションやツールバーなど、固定されたUIの枠組みには明示的なサイズを使用し、コンテンツ領域にはIntrinsic Sizingを使用します。

理解度チェック

grid-template-columnsで、auto-fitはauto-fillとどのように異なる動作をしますか?

まとめ

Intrinsic Designでは、CSSのサイズ指定キーワード(min-content、max-content、fit-content)、auto-fitと組み合わせたminmax()、流動的な拡縮のためのclamp()、そしてaspect-ratioを使用して、ビューポートのブレークポイントではなくコンテンツの寸法を基準にレイアウトを作成します。その結果、CSSの量とメディアクエリの数を減らしながら、自然にレスポンシブなレイアウトを実現できます。

よくある質問

「固有サイズ設計: コンテンツ基準のサイズ設定」レッスンは無料ですか?

はい。「固有サイズ設計: コンテンツ基準のサイズ設定」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、CSS Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 CSS Academyコースには全4レッスンが含まれています。

「固有サイズ設計: コンテンツ基準のサイズ設定」で何を学びますか?

min-content、max-content、fit-contentを使った固有サイズ設定を活用し、コンテンツを基準としたレイアウトを作成します。 ブラウザで直接実行するハンズオンコードでCSS Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

CSS Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのCSS Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。

「固有サイズ設計: コンテンツ基準のサイズ設定」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このCSS Academyレッスンでコードを書いて実行できますか?

はい。すべてのCSS Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. スティッキーフッターとサイドバーのレイアウト
  2. Gridによるホーリーグレイルレイアウト
  3. Masonryレイアウト: CSSとJSによる方法
  4. 固有サイズ設計: コンテンツ基準のサイズ設定
← CSS Academyに戻る