图标换行错位?lh 单位完美对齐
Better Icon and Label Alignment
列表中的图标在单行文本时居中完美,一旦文字换行,图标位置就会显得怪异。我曾尝试用 align-items: start 配合固定像素值的 transform 来修复,却发现图标大小或字体一变,对齐就失效了。最终,我利用 lh 单位结合 calc() 函数,计算出动态偏移量,让图标始终与文本首行顶部对齐。文章还深入探讨了使用伪元素作为图标时,如何通过 aspect-ratio 和 flex-shrink 避免图标被裁剪或变形。这套方案不依赖固定数值,能灵活应对各种字体大小和容器宽度的变化,彻底解决对齐难题。
构建布局可能是一项具有挑战性的任务,尤其是如果你不了解 CSS 布局的核心思维模型。
- 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...
- systoll
`list-style-image` 似乎是解决同样问题更直接的方案。
或者用负的 text-indent,如果你想要任意内容而不仅仅是一个勾号的话。
- LinguaBrowse
试了一下演示,似乎没有一个方案能真正居中对齐?
我觉得 lh 单位肯定是解决方案的一部分,但还需要更多。首先,它假设上升部和下降部是对称的。