CSSの書き方の順番で悩まない!スタイルルールのすすめ

Webサイトを作成していて、CSSを書き足していくうちに「このプロパティはどこに書いたっけ?」「コードがごちゃごちゃして読みにくい」と感じた経験はありませんか?

CSSは自由度が高いため、書き方の順番にルールがないとコードが乱雑になりやすいという特徴があります。

読みやすく、保守しやすいCSSにするためには、プロパティを書く順番を統一することが重要です。

この記事では、初心者からプロまで実践できる内容として以下を解説します。

  • CSSプロパティの書き方順番を統一するメリット
  • 業界標準とされるおすすめの順番
  • 実際のコード例と比較
  • チーム開発で使われるスタイルガイド
  • 自動整形ツールの活用方法
スポンサーリンク

CSSプロパティのおすすめの書く順番

基本的な考え方

一般的に推奨されているのは、レイアウト → サイズ → 装飾 → その他の順番です。

これは「大きな構造を決めるもの」から「細かな見た目の調整」まで、論理的な流れに沿って書く方法です。

詳細な順番

1. 表示形式・位置関連

要素の基本的な配置や表示方法を決めるプロパティです。

display
position
top, right, bottom, left
float
clear
z-index

2. ボックスモデル関連

要素のサイズや余白を定義するプロパティです。

width, height
max-width, max-height
min-width, min-height
margin
padding
box-sizing

3. 背景・枠線関連

要素の視覚的な枠組みを決めるプロパティです。

background
border
border-radius
box-shadow
outline

4. テキスト・フォント関連

文字に関する設定を行うプロパティです。

color
font-family
font-size
font-weight
line-height
text-align
text-decoration
white-space

5. その他・演出関連

アニメーションやカスタムプロパティなど、特殊な効果を加えるプロパティです。

transition
animation
transform
cursor
opacity
visibility

実際のコード例で比較

悪い例:順番がバラバラなCSS

.button {
  color: white;
  position: relative;
  font-size: 16px;
  background: #4caf50;
  width: 200px;
  transition: background 0.3s;
  display: inline-block;
  border: 1px solid #388e3c;
  text-align: center;
  padding: 10px 20px;
  border-radius: 4px;
  margin: 0 auto;
}

この例では、プロパティがランダムに配置されており、どこに何が書いてあるかすぐに把握できません。

良い例:順番を統一したCSS

.button {
  /* 表示形式・位置 */
  display: inline-block;
  position: relative;
  
  /* ボックスモデル */
  width: 200px;
  padding: 10px 20px;
  margin: 0 auto;
  
  /* 背景・枠線 */
  background: #4caf50;
  border: 1px solid #388e3c;
  border-radius: 4px;
  
  /* テキスト */
  color: white;
  font-size: 16px;
  text-align: center;
  
  /* その他 */
  transition: background 0.3s;
}

.button:hover {
  background: #45a049;
}

このように一貫した順番で書くことで、各セクションの役割が明確になり、保守性が大幅に向上します。

複雑なレイアウトの例

.card-container {
  /* 表示形式・位置 */
  display: flex;
  flex-direction: column;
  position: relative;
  
  /* ボックスモデル */
  width: 100%;
  max-width: 400px;
  height: auto;
  margin: 20px auto;
  padding: 20px;
  
  /* 背景・枠線 */
  background: #ffffff;
  border: 1px solid #e0e0e0;
  border-radius: 8px;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
  
  /* テキスト */
  color: #333333;
  font-family: 'Arial', sans-serif;
  
  /* その他 */
  transition: box-shadow 0.3s ease;
  cursor: pointer;
}

チーム開発で使われるスタイルガイド

主要なスタイルガイド

SMACSS(Scalable and Modular Architecture for CSS)

構造やモジュール単位でスタイルを整理する手法です。

特徴

  • ベース、レイアウト、モジュール、状態、テーマの5カテゴリーで分類
  • 大規模プロジェクトでのCSS管理に適している
  • プロパティの記述順序も定義されている

BEM(Block Element Modifier)

クラス名を「Block__Element–Modifier」の形式で統一する手法です。

記述例

.card { /* Block */ }
.card__title { /* Element */ }
.card--featured { /* Modifier */ }

CSS Property Order

Mozilla、Google、Airbnbなどのテックカンパニーが採用している順序規則です。

Mozilla スタイルガイド例

.example {
  /* Positioning */
  position: relative;
  top: 0;
  right: 0;
  
  /* Display & Box Model */
  display: block;
  width: 100px;
  height: 100px;
  
  /* Other */
  background: #000;
  color: #fff;
}

自動整形ツールの活用

Prettier

コードの自動整形を行うツールです。

設定例(.prettierrc)

{
  "semi": true,
  "singleQuote": true,
  "tabWidth": 2,
  "printWidth": 80
}

Stylelint

CSSの構文チェックとプロパティ順序の自動整列を行います。

設定例(.stylelintrc.json)

{
  "extends": ["stylelint-config-standard"],
  "rules": {
    "order/properties-alphabetical-order": true,
    "declaration-block-semicolon-newline-after": "always"
  }
}

VSCode拡張機能

  • Stylelint: リアルタイムでCSSの問題を検出
  • CSS Peek: クラス名から定義箇所にジャンプ
  • IntelliSense for CSS: CSSプロパティの自動補完

プロジェクト規模別の推奨アプローチ

小規模プロジェクト(個人開発)

基本的な順番ルールを守り、シンプルな構成を心がけます。

/* シンプルな順番ルール */
.component {
  /* レイアウト */
  display: block;
  
  /* サイズ */
  width: 100%;
  
  /* 装飾 */
  background: #fff;
  
  /* テキスト */
  color: #333;
}

中規模プロジェクト(チーム開発)

スタイルガイドを導入し、自動整形ツールを活用します。

package.json設定例

{
  "scripts": {
    "lint:css": "stylelint 'src/**/*.css'",
    "format:css": "prettier --write 'src/**/*.css'"
  }
}

大規模プロジェクト(エンタープライズ)

包括的なCSS設計手法とツールチェーンを構築します。

  • CSS-in-JSライブラリの採用
  • ビルドプロセスでの自動最適化
  • デザインシステムとの連携

よくある質問と解決方法

プロパティの順番を覚えられない場合

解決方法

  1. エディタの拡張機能を使用して自動整列
  2. チートシートを作成して手元に置く
  3. 段階的に慣れていく(まずは大きなカテゴリーから)

既存プロジェクトに導入する場合

手順

  1. 現状のコードを分析
  2. チーム内でルールを合意
  3. 段階的に適用(新しいコードから)
  4. 自動整形ツールで一括変換

パフォーマンスへの影響

CSSプロパティの記述順序は、ブラウザの描画パフォーマンスには基本的に影響しません。ただし、読みやすさが向上することで、間接的に開発効率とコード品質が向上します。

まとめ

CSSプロパティの書く順番を統一することで、以下のメリットが得られます。

開発効率の向上

  • コードの見通しがよくなり、保守性が向上
  • デバッグ時間の短縮
  • 新機能追加時の作業効率アップ

チーム開発の最適化

  • コードレビューの効率化
  • 新メンバーの学習コスト削減
  • プロジェクト全体の品質向上

推奨する順番

  1. 表示形式・位置関連
  2. ボックスモデル関連
  3. 背景・枠線関連
  4. テキスト・フォント関連
  5. その他・演出関連

コメント

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