テック技報最新号へ →
CSS

margin-trim で最後の子要素の余白を親側でカット

親に margin-trim: block-end を書くだけで、最後の子要素の下マージンが自動で消える。

@Robby_WebDesign · 2026-10-09
#余白#レイアウト#新機能#Chrome155

どんな時に使う?

カードやセクション内で p { margin-bottom: 20px } のように子要素に余白を付けると、最後の要素の下に余計な余白が残る。これまでは :last-child { margin-bottom: 0 } や > * + *(ロボットのお尻)で対処していたが、最後に来るのが p でも ul でも親側1行で解決できる。

コード

css
.card {
  margin-trim: block-end; /* 親の下端に接する子のマージンを切る */
}
.card p,
.card ul {
  margin-bottom: 20px;
}
  • 値: block / inline / block-start / block-end / inline-start / inline-end など。
  • 親コンテナの端に接している子のマージンだけが対象。

注意点・対応状況

  • Safari は 16.4 から対応。投稿および国内メディア(コリス等)によると Chrome 155 で対応。Firefox の対応状況は Can I use で要確認。
  • 未対応ブラウザでは単に余白が残るだけなので、プログレッシブエンハンスメントとして使いやすい。

出典

X の元の投稿を開く