图标换行错位?lh 单位完美对齐

Better Icon and Label Alignment

图标换行错位?lh 单位完美对齐

列表中的图标在单行文本时居中完美,一旦文字换行,图标位置就会显得怪异。我曾尝试用 align-items: start 配合固定像素值的 transform 来修复,却发现图标大小或字体一变,对齐就失效了。最终,我利用 lh 单位结合 calc() 函数,计算出动态偏移量,让图标始终与文本首行顶部对齐。文章还深入探讨了使用伪元素作为图标时,如何通过 aspect-ratio 和 flex-shrink 避免图标被裁剪或变形。这套方案不依赖固定数值,能灵活应对各种字体大小和容器宽度的变化,彻底解决对齐难题。

构建布局可能是一项具有挑战性的任务,尤其是如果你不了解 CSS 布局的核心思维模型。
  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