推荐用无单位数值(如line-height: 1.5)而非line-height: 24px,因其作为字体大小倍数动态缩放,避免响应式或嵌套字号变化时行距失控、文字重叠或截断。
用无单位数值(如
)设置比例是最可靠的方式;其他值类型在嵌套、响应式或字体变化时容易出错。
为什么推荐用
而不是
固定像素值会锁死行高,脱离字体大小的动态关系:
当子元素
变为
,
会让文字上下留白过多,视觉松散
当子元素
变为
,同一
行高可能压住字母“g”“y”的下降部,造成截断
用户放大系统字体或启用强制缩放时,
值不随字体变化,行距反而变紧甚至重叠
响应式中用
或
动态调字号时,
行高完全失联
和
看似一样,但继承逻辑不同
两者计算结果常相同,但传播方式有本质区别:
是纯缩放因子,子元素继承该数字,再结合自身
重新计算 → 安全、可预测
是“父元素当前
× 1.5”所得的绝对像素值,该像素值被子元素直接继承 → 子元素不会再次乘自己字号,易导致小字号文字行距过大、大字号文字行距过小
若父元素
由
动态生成,
可能在计算早期就固化一个中间值,而
始终保持实时绑定
给
元素设
为什么没反应
不是没生效,是它作用的对象不是你想象的那样:
使用HTML,CSS,JavaScript开发Android应用程序 英文文字pdf版附源文件
如果你了解HTML,CSS和JavaScript,您已经拥有所需的工具开发Android应用程序。本动手本书展示了如何使用这些开源web标准设计和建造,可适应任何Android设备的应用程序 - 无需使用Java。您将学习如何创建一个在您选择的平台的Android友好的网络应用程序,然后转换与自由PhoneGap框架到一个原生的Android应用程序。了解为什么设备无关的移动应用是未来的潮流,并开始构建应用程序,提供更
下载
控制的是**行框(line box)高度**,不是单个
的上下边距
给
设
,若其父
已撑开足够高的行框,
只是按
对齐其中,视觉上“不动”
真正影响内联元素垂直位置的是
:想和文字居中对齐,用
;想让图标底部贴齐文字基线,用
、
等替换元素不受
直接“撑高”,它只参与所在行框的布局分配
做多行省略(
)时,
必须精确匹配
最后一行被切半或省略号悬空,90% 是因为这三个值没对齐:
必须是纯数字或统一单位(推荐
或
)
必须严格等于
,且单位一致:例如
+
(3 行)
若混用单位(如
但
),浏览器计算偏差会导致截断错位
和
缺一不可,否则
不触发
最易被忽略的一点:全局
是起点,但所有标题、引用块、代码行等特殊语义元素都必须显式覆盖——靠继承默认值,在复杂排版中大概率失效。
line-height1.5line-height: 1.5line-height: 24pxfont-size12pxline-height: 24pxfont-size20px24pxpxremclamp()pxline-height: 1.5line-height: 150%line-height: 1.5font-sizeline-height: 150%font-sizefont-sizecalc(1rem + 0.25vw)150%1.5inlineline-heightline-heightspanspanline-height: 2pspanvertical-align: baselinevertical-alignvertical-align: middlevertical-align: text-bottominputimgline-height-webkit-line-clampline-heightline-height1.61.6emmax-heightline-height × 行数line-height: 1.6emmax-height: 4.8emline-height: 1.6emmax-height: 48pxdisplay: -webkit-box-webkit-box-orient: verticalline-clampbody { line-height: 1.6 }