当前位置: 首页 > news >正文

line-height属性详解

定义

line-height属性是CSS中用于控制单行文本行高(包括文本内容本身及其上下间距)的属性。不仅影响文本的垂直布局,还可以用于实现一些常见的布局技巧(如垂直居中)。

行高的计算公式:
行高 = 字体大小 + 上下间距

取值类型

line-height可以接受以下类型的值:

值类型示例描述
数值1.5行高为字体大小的1.5倍
长度单位20px行高为固定值20px
百分比150%行高为字体大小的150%
关键字normal使用浏览器默认的行高(通常为1.2)

表现形式

line-height属性对所有元素都有效,包括块元素、行内元素、行内块元素。

line-height的表现形式取决于上下文和元素类型:

  1. 块级元素
    在块级元素中,line-height会影响其内部所有文本的行间距
    <div style="line-height: 2; background: lightgray;">这是第一行<br>这是第二行
    </div>
    
    第一行和第二行的行高都为字体大小的 2 倍
  2. 行内元素
    在行内元素中,line-height会影响该元素与其他行内元素的垂直对齐
    <div style="background: lightgray;">这是文本 <span style="line-height: 3;">行内元素</span> 的示例
    </div>
    
    行内元素span的行高为字体大小的3倍
  3. 行内块元素
    在行内块元素中,line-height会影响其内部文本的行间距,同时也会影响其自身的垂直对齐
    <div style="background: lightgray;">这是文本 <button style="line-height: 2;">按钮</button> 的示例
    </div>
    
    按钮内部文本的行高为字体大小的 2 倍

特殊用途

  1. 垂直居中
    通过设置line-height等于容器高度,可以实现单行文本的垂直居中
    <div style="height: 100px; line-height: 100px; ">垂直居中的文本
    </div>
    
  2. 多行文本的行间距
    通过设置line-height,可以控制多行文本的行间距
    <div style="line-height: 2; background: lightgray;">这是第一行<br>这是第二行
    </div>
    
  3. 文本与图片的垂直对齐
    通过设置line-height,可以使文本与图片在同一行中垂直对齐
    <div style="line-height: 50px; background: lightgray;"><img src="example.png" alt="示例图片" style="vertical-align: middle;">这是文本
    

继承性

line-height属性具有继承性,父元素的line-height会传递给子元素

<div style="line-height: 2;">父元素文本<p>子元素文本</p>
</div>

子元素p的行高也为2

文本元素垂直居中原理

首先要了解几个概念

  1. 行框(Line Box)
    每行文本都会被包裹在一个行框中,行框的高度由line-height决定。

    PS: 垂直方向的padding和border会增加行框的视觉区域,但不会改变行框的实际高度,行框的高度只由line-height决定

  2. 基线(Baseline)
    文本的基线是字符x底部对齐的参考线,行框中的文本会默认沿基线对齐。

  3. 垂直对齐
    line-height等于容器高度时,行框的高度与容器高度相同,浏览器会将行框在容器中垂直居中,文本也会随之居中。

基线、顶线、底线、中线

参考文档
在这里插入图片描述
从上到下四条线,分别是顶线(绿)、中线(蓝)、基线(红)、底线(紫)

黄线区域表示行间距,其实是分为上一行文字的下半行距和下一行文字的上半行距

  1. 基线
    基线是小写字母x字母的下边缘(线)

    内联元素默认是按照基线对齐的,而基线就是小写字母x的底部

    line-height属性设置的行高也就是定义的两行文字基线之间的距离。如果line-height设置为0px,两条基线就会重叠,文字就会重叠

  2. 顶线
    顶线是中文汉字的顶部位置

  3. 底线
    底线是中文汉字的底部位置

  4. 中线
    css中有一个概念叫做x-height,也就是小写字母x的高度

    css中的小写字母x不仅确定了基线的位置,还确定了中线(等分线)的位置

    中线是横过小写字母x的中间交叉点的线,也是vertical-align: middle对应的位置,可以看出来vertical-align:middle并不是绝对的垂直居中于文字对齐,只是一种近似接近于居中的效果

http://www.xdnf.cn/news/1416889.html

相关文章:

  • Kafka消息中间件安装配置
  • 日语学习-日语知识点小记-构建基础-JLPT-N3阶段(23):文法+单词第7回5+考え方3
  • 【DeepSeek】蓝耘元生代 | 蓝耘MaaS平台与DeepSeek-V3.1重构智能应用开发
  • 【数据库】Sql Server数据库中isnull、iif、case when三种方式的使用和空值判断
  • 【重学MySQL】九十七、MySQL目录结构与文件系统解析
  • 2025年06月 Scratch 图形化(四级)真题解析#中国电子学会#全国青少年软件编程等级考试
  • Dify之插件开发之Crawl4ai 爬虫(简单逻辑实现)
  • 【XR技术概念科普】VST(视频透视)vs OST(光学透视):解码MR头显的两种核心技术路径
  • 高并发场景下的热点数据处理:从预热到多级缓存的性能优化实践
  • Java 双链表
  • 云市场周报 (2025.09.01):解读腾讯云向量数据库、阿里云西安节点与平台工程
  • 【Pycharm】Pychram软件工具栏Git和VCS切换
  • 【数据可视化-105】Pyecharts主题组件:让你的图表瞬间高大上
  • 飞牛nas修改crontab计划默认编辑器
  • leetcode-hot-100 (贪心算法)
  • 构建共享新生态的智慧物流开源了
  • TensorFlow 2.10 是最后一个支持在原生Windows上使用GPU的TensorFlow版本
  • TensorFlow深度学习实战(36)——自动机器学习(AutoML)
  • Golang之GoWorld深度解析:基于Go语言的分布式游戏服务器框架
  • 【最新版】Win11 24H2 正式版2025年8月版 Windows11的24H2全系列下载 官方原版光盘系统ISO文件下载
  • .net 微服务jeager链路跟踪
  • Java全栈开发工程师面试实战:从基础到微服务的完整技术演进
  • 嵌入式学习(day37) 数据库 Sqlite相关命令函数
  • Flutter 本地持久化存储:Hive 与 SharedPreferences 实战对比
  • 基于FPGA的多协议视频传输IP方案
  • Kubernetes 中根据 Pod IP 查找 Pod 及关联服务的方法
  • Fiddler抓包原理及教程(附带解决高版本Android抓包无网络问题)
  • 【Android】Span富文本简介
  • Python 爬虫案例:爬取豆瓣电影 Top250 数据
  • 华为云CCE