「CSS(シーエスエス)」はWebページに色・フォント・レイアウトを付けるためのスタイルシート言語です。HTMLだけではプレーンなページですが、CSSを使うと美しいデザインのWebサイトになります。この記事ではCSSの基本を解説します。
- CSSとは?
- 主要なCSSプロパティ
- フレックスボックスとグリッドレイアウト
- よくある質問
- まとめ
- CSSのレスポンシブデザイン実践(メディアクエリ・コンテナクエリ)
- CSSフレームワーク(Tailwind CSS vs Bootstrap)の選択
- CSS変数(カスタムプロパティ)とダークモード実装
- CSS Grid レイアウト実践
- CSS アニメーションとトランジション
- CSS Custom Properties(変数)のダークモード実装
- CSSのコンテナクエリとスコープ
- CSSフレームワークの選択と比較(2025年版)
- CSSのアニメーションとトランジション実装
- CSS設計の方法論(BEM・OOCSS・SMACSS・Utility First)
CSSとは?
CSS(Cascading Style Sheets)は、HTMLで記述されたWebページの見た目を定義するためのスタイルシート言語です。1996年にW3Cが策定し、現在はCSS3が標準です。「セレクタ { プロパティ: 値; }」という構文で、対象の要素にスタイルを適用します。
主要なCSSプロパティ
| カテゴリ | 主なプロパティ | 説明 |
|---|---|---|
| テキスト | color・font-size・font-weight | 文字色・サイズ・太さを設定 |
| 背景 | background-color・background-image | 背景色・背景画像を設定 |
| 余白 | margin・padding・border | 外側余白・内側余白・枠線を設定 |
| レイアウト | display・flexbox・grid | 要素の並べ方・配置を制御 |
| サイズ | width・height・max-width | 要素の横幅・高さを設定 |
| アニメーション | transition・animation・transform | 動きやアニメーションを付ける |
フレックスボックスとグリッドレイアウト
モダンなWebレイアウトはFlexbox(1次元:横・縦並び)とGrid(2次元:複雑なレイアウト)で構築されます。どちらもレスポンシブデザイン(スマホ・PCで見た目を変える)の実現に不可欠な技術です。
よくある質問
TailwindCSSとは?
TailwindCSSは「ユーティリティファーストCSS」フレームワークです。「bg-blue-500」「text-xl」「flex」のような短いクラス名を組み合わせてスタイルを適用します。CSSを別ファイルに書く必要がなく、HTML内でデザインを完結できるため、React・Vue.jsとの相性が良く人気が急上昇しています。現代のフロントエンド開発ではTailwindCSSの採用が急速に広がっています。
SCSSとは?
SCSS(Sassy CSS)はCSSを拡張したプリプロセッサで、変数・ネスト・ミックスインなどの機能が追加されています。SCSSはコンパイルによって通常のCSSに変換されます。大規模なスタイルシートを効率よく管理できるため、現代のWeb開発では広く使われています。
まとめ
CSSはWebページを美しくするスタイルシート言語です。セレクタ・ボックスモデル・FlexboxとGridを習得することで、モダンなWebデザインを実現できます。HTMLとセットで学んでWebデザインの基礎を固めましょう。
CSSのレスポンシブデザイン実践(メディアクエリ・コンテナクエリ)
スマートフォン時代のWeb開発ではレスポンシブデザインが必須です。CSSのメディアクエリ(@media)を使ってスクリーンサイズに応じてスタイルを切り替えます。「モバイルファースト」アプローチでは最初にスマートフォン向けのスタイルを書き、min-widthで大きな画面のスタイルを上書きします。CSS Grid・Flexboxを組み合わせることで複雑なレイアウトもシンプルなコードで実現できます。2023年に主要ブラウザで対応した「コンテナクエリ(@container)」は、画面幅ではなく親コンテナの幅に応じてスタイルを変えられる新機能で、コンポーネント指向の開発に非常に相性が良いです。
CSSフレームワーク(Tailwind CSS vs Bootstrap)の選択
2025年時点で主要なCSSフレームワークはTailwind CSSとBootstrapです。Tailwind CSSはユーティリティクラスを組み合わせるアプローチで、カスタムデザインが作りやすくReact・Vue・Svelteとの相性が抜群です。近年のフロントエンド開発ではTailwind CSSが圧倒的な人気を誇ります。Bootstrapはあらかじめデザインされたコンポーネント(ボタン・カード・モーダル等)が揃っており、デザインの一貫性を保ちやすく、特にAdminパネルやプロトタイプ作成に適しています。プロジェクトの性質・チームの好みに応じて使い分けましょう。
CSS変数(カスタムプロパティ)とダークモード実装
CSS変数(カスタムプロパティ)は:root{}に定義して再利用できます。–primary-color: #1e3a5fのように定義し、color: var(–primary-color)で参照します。色・サイズ・フォントなどデザイントークンをCSS変数で管理することで、テーマ変更が1箇所の変更で全体に反映できます。ダークモードはprefers-color-schemeメディアクエリとCSS変数を組み合わせて実装します。@media (prefers-color-scheme: dark) {}内で変数の値を上書きするだけで、ダークモード対応が完成します。
CSS Grid レイアウト実践
CSS Gridは2次元のレイアウトを作るための強力な仕組みです。display: gridとgrid-template-columns・grid-template-rowsでグリッドを定義し、grid-column・grid-rowで各要素の配置を指定します。repeat(auto-fill, minmax(200px, 1fr))という指定でレスポンシブなカードグリッドが1行で作れます。grid-template-areasを使うとnamed areaで視覚的なレイアウト定義ができ、コードの可読性が上がります。subgridはCSS Grid Level 2の機能で、入れ子のグリッドで親グリッドのラインを引き継げます。2024年には全主要ブラウザがsubgridをサポートしました。
CSS アニメーションとトランジション
CSSのトランジション(transition)とアニメーション(@keyframes)でインタラクティブなUIを作れます。transitionは状態変化時に滑らかに変化させる基本機能で、transition: all 0.3s ease が頻繁に使われます。@keyframesを使った複雑なアニメーションはfrom/to(0%/100%)やパーセンテージで中間フレームを定義できます。アニメーションはwill-change: transformでGPUアクセラレーションを有効にすることでパフォーマンスが向上します。prefers-reduced-motionメディアクエリでアクセシビリティ対応(動きが苦手なユーザー向けにアニメーションを無効化)も重要です。
CSS Custom Properties(変数)のダークモード実装
CSS変数(カスタムプロパティ)とprefers-color-schemeメディアクエリを組み合わせたダークモード実装が現代の標準です。:root {}でライトモードの変数値を定義し、@media (prefers-color-scheme: dark) { :root {} }でダークモード用に上書きします。JavaScriptで手動切り替えをする場合はdocument.documentElement.setAttribute(“data-theme”, “dark”)でdata属性を操作し、[data-theme=”dark”] {}でスタイルを定義します。Tailwind CSSのdarkVariantはclass=”dark”をhtmlタグに付けることでダークモードが有効になる設計で、非常に使いやすいです。
CSSのコンテナクエリとスコープ
CSS Container Queries(@container)は2023年に全主要ブラウザが対応した比較的新しい機能です。画面幅ではなく「親要素の幅」に応じてスタイルを変えられるため、再利用可能なコンポーネントのレスポンシブデザインに非常に適しています。サイドバーに配置するとコンパクト表示、メインコンテンツ内に配置すると展開表示、という「コンポーネントが置かれた文脈に応じたレスポンシブ」が実現します。@scope CSSルールで特定のコンテキスト内にだけCSSを適用できるCSS Scopingも2024年に安定対応しました。これらの新機能でコンポーネント指向のCSS設計が一層強力になっています。
CSSフレームワークの選択と比較(2025年版)
2025年時点のCSSフレームワーク選定ガイドです。Tailwind CSS(v4リリース済み)は依然として急成長中で、大型ツールの設定なしに使えるようになりました。Bootstrap 5はAdminパネル・ダッシュボード・イントラネットに根強い需要があります。Panda CSS・Vanilla Extractはゼロランタイムの型安全なCSSアプローチで、TypeScriptとの相性が抜群です。Shadcn/ui(Tailwind CSS + Radix UI)はコピー&ペーストで使えるReactコンポーネントライブラリとして急速に普及しており、2024年最も注目されたUIライブラリです。プロジェクトの技術スタック・デザインの自由度・チームの好みに合わせて選択しましょう。
CSSのアニメーションとトランジション実装
CSSのtransitionは要素の状態変化(hover・focusなど)時に滑らかな変化を付ける機能です。transition: property duration easing delay の順で指定します。all 0.3s ease がよく使われます。@keyframesを使ったアニメーションはanimation-name・animation-duration・animation-timing-function・animation-iteration-countで制御します。パフォーマンス面ではopacity・transformのみをアニメーション対象にすることが重要で、width・height・margin等を変化させるとリフローが発生してパフォーマンスが低下します。will-change: transform でGPUレイヤーを事前に確保し、アニメーションを60fps維持できます。prefers-reduced-motionメディアクエリでアクセシビリティ対応(動きが苦手なユーザー向けにアニメーション無効化)も実装しましょう。
CSS設計の方法論(BEM・OOCSS・SMACSS・Utility First)
CSSの設計方法論を知ることで大規模スタイルシートを管理しやすくなります。BEM(Block Element Modifier)は「.card__title–active」のようにブロック・要素・修飾子を二重アンダースコア・ハイフンで区切る命名規則で、スタイルの衝突を防ぎます。OOCSSは「構造」と「スキン」を分離する設計思想です。SMACSSはCSSをBase・Layout・Module・State・Themeの5カテゴリに分類します。Utility First(Tailwind CSS)はこれらの設計方法論の問題(クラス名の爆発的増加)をユーティリティクラスで解決します。現代のComponent Architectureでは各コンポーネントにスコープされたCSS(CSS Modules・styled-components・vanilla-extract)が増えています。


コメント