【PR】を含みます。

フロントエンド

【CSS】プロパティの記述順序

CSS プロパティの記述順序

CSSを書いていて、「なんとなく書いたけど、あとから見返したらすごく読みにくい…」と感じたことはありませんか?

プロパティの順序を意識するだけで、CSSは見やすく、ミスの少ないコードになります。

この記事では、CSSのプロパティの並べ方に関する考え方や、おすすめのルールをご紹介します。

HTMLとJavaScriptの命名ルールと属性の順番については以下の記事で解説してます。

あわせて読む
備忘録・現役エンジニアの実例 HTMLとJavaScriptの命名ルールと属性の順番

【備忘録】HTMLとJavaScriptの命名ルールと属性の順番【現役エンジニアの実例】

もくじ命名規則の基本方針命名ルールの基本的な考え方HTMLにおけるidとclassの命名ルールid と class の違いと使い分けおすすめの命名ルールよくあるNG例よく混同される他のスタイルとの違い ...

CSSのプロパティ順序が重要な理由

CSSは自由度が高いため、同じ見た目でもさまざまな書き方が可能です。

しかし、以下のような理由からプロパティの順序を統一することが推奨されます。

可読性の向上同じルールで書かれていれば、他人のコードも理解しやすくなります。
保守性の向上プロパティを探しやすく、修正漏れを防ぐことができます。
チーム開発での統一感誰が書いても同じようなコードに見えるため、レビューの負担が減ります。
意図しない上書きの防止順序を明確にすることで、依存関係のあるプロパティの誤上書きを防ぐことができます。

プロパティの並び順のルール(パターン紹介)

3つのプロパティの並び順ルールを紹介しますが、私は「グループ分類順」を採用してます。

理由は、派遣やフリーランスエンジニアを通して様々なプロジェクトに参画してきましたが、全てのプロジェクトでグループ分類順が採用されていたためです。

1. グループ分類順

もっともよく使われる方法で、プロパティの種類によってグループ分けして並べます。

以下は私自身が使用しているものです。

/* 1. レイアウト・表示モード */
display
flex
flex-grow
flex-shrink
flex-basis
flex-direction
flex-wrap
justify-content
align-items
align-content
align-self
order
grid
grid-template-columns
grid-template-rows
grid-area
place-items
gap
visibility
position
z-index
top
right
bottom
left
inset
float
clear

/* 2. ボックスサイズとスペーシング(ボックスモデル) */
box-sizing
width
min-width
max-width
height
min-height
max-height
margin
margin-top
margin-right
margin-bottom
margin-left
padding
padding-top
padding-right
padding-bottom
padding-left

/* 3. スクロール・オーバーフロー・表示領域 */
overflow
overflow-x
overflow-y
clip
resize

/* 4. タイポグラフィ(文字周り) */
font
font-family
font-size
font-weight
font-style
font-variant
line-height
letter-spacing
word-spacing
text-align
text-indent
text-transform
text-decoration
text-overflow
white-space
vertical-align
color
direction

/* 5. リストスタイル */
list-style
list-style-type
list-style-position
list-style-image

/* 6. 背景とボーダー(ビジュアルデザイン)*/
background
background-color
background-image
background-position
background-size
background-repeat
background-attachment
border
border-width
border-style
border-color
border-top
border-right
border-bottom
border-left
border-radius
box-shadow
outline
outline-width
outline-style
outline-color
outline-offset

/* 7. テーブル */
table-layout
border-collapse
border-spacing
caption-side
empty-cells

/* 8. エフェクト・アニメーション・変形 */
opacity
transition
transition-property
transition-duration
transition-timing-function
transition-delay
animation
animation-name
animation-duration
animation-timing-function
animation-delay
animation-iteration-count
animation-direction
transform
transform-origin
filter

/* 9. インタラクション系(ユーザー操作) */
cursor
pointer-events
user-select
touch-action
caret-color
scroll-behavior
will-change

/* 10. その他の特殊プロパティ */
content
quotes
counter-reset
counter-increment
appearance
visibility
backface-visibility
mix-blend-mode
isolation

2. アルファベット順

Googleが推奨している、A→Z順に並べる方法です。

メリット:ツールで機械的に並び替えができる、誰が書いても同じ順番になる、プロパティを探しやすくなる

デメリット:意味的なつながりが見えにくい、可読性が低くなる

.selector {
  background: #eee;
  border: 1px solid #ccc;
  color: #333;
  display: block;
  margin: 20px;
  padding: 10px;
}

3. 独自ルールの作成

「グループ分類順+よく使うプロパティ優先」など、自分やチームに合わせたカスタム順序を作成します。

独自ルールの作成するうえで大切なのは一貫性です。

まとめ

CSSのプロパティ順序は、地味ながらコードの品質を大きく左右する要素です。

  • 順序を統一すれば読みやすく、メンテナンスも楽になる
  • 一貫性のあるルールを決めて、チームで共有しよう

Prettierなどツールを導入することで、アルファベット順などにソートすることも可能です。

まずは小さなルールから導入してみて、自分に合った書き方を見つけてください!

HTMLとJavaScriptの命名ルールと属性の順番については以下の記事で解説してます。

あわせて読む
備忘録・現役エンジニアの実例 HTMLとJavaScriptの命名ルールと属性の順番

【備忘録】HTMLとJavaScriptの命名ルールと属性の順番【現役エンジニアの実例】

もくじ命名規則の基本方針命名ルールの基本的な考え方HTMLにおけるidとclassの命名ルールid と class の違いと使い分けおすすめの命名ルールよくあるNG例よく混同される他のスタイルとの違い ...

-フロントエンド
-