アイコンとラベルの配置、その微妙なズレを直すCSSテクニック

Better Icon and Label Alignment

アイコンとラベルの配置、その微妙なズレを直すCSSテクニック

リスト項目のアイコンとテキストの垂直配置は、テキストが複数行になると途端に難しくなる。著者は、アイコンがHTML要素の場合と疑似要素の場合の2つの解決策を紹介。`align-items: start`と`lh`単位を組み合わせ、アイコンのサイズやフォントサイズ、コンテナ幅が変わっても正しく中央揃えされる方法を解説する。

固定値のtransformを使っても、アイコンサイズ、フォントサイズ、コンテナ幅が変わるとうまくいかない。
  1. pveierland

    この問題をよりうまく解決するのに役立つ新しいCSSの機能[0]が登場しました。alignment-baseline[1]とtext-box-trim[2]を使います。

    [0] https://www.w3.org/TR/css-inline-3/#leading-trim

    [1] https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/P...

    [2] https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/P...

  2. systoll

    `list-style-image` は同じ問題に対するより簡単な解決策のように思えます。

    あるいは、チェックマークだけでなく任意のコンテンツを使いたいなら、負の text-indent でもいいでしょう。

  3. LinguaBrowse

    デモをいじってみたけど、どの解決策もあまり中央に寄っていないように見える?

    lh 単位が確かにパズルの一部だとは思うけど、何かもっと必要な気がする。たとえば、アセントとディセントが対称だと仮定している点とか。

この日のほかの記事

2026-09-18