图文排版 之 line-height

news2024/11/16 15:54:54

图文排版 之 line-height

设置行盒子的高度.

line-height 经常被用来设置多行文本的行间距. 对于块级元素, line-height 制定了行盒子的最小高度. 对于非替换的内联元素, line-height 的值用来计算行盒子的高度.

一般来说, 大家都知道一个 div 的高度默认是由其子元素撑起的, 但是负责撑起的却不是 font-size 而是 line-height.

从下图可以看出, 当 font-size0 但是 line-height16px 的时候 div 被撑起了, 说明撑起 div 的是 line-height 不是 font-size.唉, 这时候聪明的你会问了🤔️, 为啥 font-size0 的时候 div 塌陷成一条线了呢? 这就和 line-height 的默认属性值 normal 有关系了.
在这里插入图片描述

属性值

line-height 的属性值一共可以有四种类型, 分别是关键词 normal, number 类型, length 类型, 和 percentage 类型.

number 类型

如果值为 number, 那么是没有单位的. 最终的 line-height 大小是 number * font-size 的值. 如果通过浏览器开发者工具的已计算的标签页, 看到的值也是 number 而不是乘积后的结果.

MDN 中介绍大多数情况下, number 是最推荐设置 line-height 的方式, 可以避免因为继承而出现的奇怪结果.

.number {
  font-size: 20px;
  line-height: 1.5;
}

从下图可以看出来, 因为 line-height 的值是 number 类型, 最后计算的结果是 1.5 * 20px = 30px, 又因为整个文字是两行, 所以 div 高度是 60px
在这里插入图片描述

关键词 normal

具体 normal 所设定的 line-height 有多少取决于浏览器的实现, 包括火狐浏览器在内的桌面浏览器使用 1.2 左右的默认值, 当然取决于元素的 font-family. 所以可以回答上面的问题了, 因为 font-size 的值为 0, 所以不论乘以多少还是 0, 也就没有高度了.
Edge/Chrome 浏览器中, normal 的值大约是 1.4, 在 Safari 浏览器中大约是 1.125.
在这里插入图片描述

在这里插入图片描述

下面看看不同的字体对 line-height 的影响, 在 macOS 中, 苹方字体的 normal 是上面算过的 1.125, 但是宋体和楷体的 normal 就是 1 了.
在这里插入图片描述

length 类型

可以使用带有单位的长度值作为 line-height, 如果使用 em 单位可能产生意想不到的效果😓.

.em-2 {
  line-height: 1em;
}
.em-2 .son {
  font-size: 2em;
}
<div class="em-2">
  <div class="son">
    Lorem ipsum dolor sit...
  </div>
</div>

在这里插入图片描述

糟糕的事情出现了, 文字挤在了一起, 这是因为子元素设置的 line-height 虽然从父元素继承了 1em 但是这个 em 是相对于父元素的 font-size 也就是默认的 16px 计算的, 导致子元素的 line-height 也是 16px. 所以这个继承现象比较奇怪, 要谨慎使用 em 为单位的 line-height

percentage 类型

相对于元素自身的 font-size 设置. 结果就是百分数乘以元素自身计算出来的字体大小, 百分比也可能带来意想不到的效果.

.parent {
  line-height: 100%;
  margin-top: 2em;
}
.parent .son {
  font-size: 2em;
}
<div class="parent">
  <div class="son">
    Lorem ipsum dolor sit...
  </div>
</div>

和上面 length 类型的例子一样, 样式出了问题. 同样 .son 继承了 .parentline-height 100%, 但是这个 100% 是相对于 .parentfont-size 计算的.
在这里插入图片描述

其他

1️⃣ MDN 推荐网页的主要段落文字, 要设置 line-height 最小为 1.5, 这样可以提高用户在低可视条件下的阅读体验, 同时帮助有阅读困难的用户.

2️⃣ 通过将 line-height 和容器的 height 设置为一样的大小可以实现单行文字的垂直居中

3️⃣想要实现类似圆形文字头像的效果, 如果想要通过设置四边相等的 padding 来实现的话, 就一定要注意 line-height,

.circle {
  display: inline-block;
  padding: 10px;
  border-radius: 50%;
  background-color: #575fcf;
  line-height: 16px;
}
<div class="circle"></div>

默认 font-size 就是 16px, 可以看到设置与不设置 line-height 直接影响到了结果究竟是圆还是椭圆.(左边设置, 右边没设置)
在这里插入图片描述

谢谢你看到这里😊

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/96886.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

史上最全 Java 高频面试合集,命中率高达 95%

进大厂是大部分程序员的梦想&#xff0c;而进大厂的门槛也是比较高的&#xff0c;所以这里整理了一份阿里、美团、滴滴、头条等大厂面试大全&#xff0c;其中概括的知识点有&#xff1a;Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、 Redis、MySQL、Spring、S…

现代控制理论

系统的状态空间表达式的建立 建立系统状态空间表达式的三种方法 &#xff08;1&#xff09;根据系统的方框图列写 &#xff08;2&#xff09;从系统的基本原理推导 &#xff08;3&#xff09;根据传递函数或者高阶微分方程实现 方框图法 有些系统的系统机理还没搞清楚可以使…

nodejs+vue高校教室管理系统

摘 要 1 1 系统概述 4 1.1研究背景 4 1.2研究现状 4 1.3主要内容 5 2 系统开发环境 6 2.3 MySql数据库 6 2.4 B/S结构 7 3 需求分析 8 3.1技术可行性&#xff1a;技术背景 8 3.2经济可行性 8 3.3操作可行性 8 3.4系统设计规则 9 3.5系统流程和逻辑 9 4系统概要设计 13 4.1 概…

Delaunay三角网之分治算法

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 Delaunay三角网现有的构网算法有很多种,有学者曾对其中一些算法进行了调查和评估(如下图所示)。结果表明,在少量点时,Lawson的增量插入算法、Lee和Schachter的分治算法以及Fortune的平面扫描算法在速度上大致相…

Hexo+stun主题+Gitee5分钟快速搭建你的个人Blog

环境配置 首先要下载Node.js&#xff0c;然后安装Git&#xff0c;接着注册码云&#xff0c;最后安装Hexo&#xff0c;Hexo安装命令行(cmd 或 gitbash): npm install hexo-cli -g速度慢可以先改一下安装源: npm config set registry https://registry.npm.taobao.orgHexo搭建 目…

Linux调试器-gdb介绍

文章目录gdb的基础使用gdb是什么gdb的使用gdb的下载**l 显示代码****b 行号 :打断点****info b :查看断点****d 断点序号 :删除断点****r :运行调试****n&#xff08;next&#xff09; &#xff1a;逐过程****s&#xff08;step&#xff09;&#xff1a;逐语句****c&#xff08…

程序员接私活的那些事

每日坚持一点点&#xff0c;就离目标近一点。 文章目录怎么在空闲时间获得格外的收入接私活的有哪些途径接私活的途中需要注意什么格外福利怎么在空闲时间获得格外的收入 今天我们就不聊技术问题&#xff0c;咱们聊聊一个有意思的话题—>怎么在空闲的时间获得格外的收益&…

设计模式3 - 结构型模式

23种设计模式分析与见解开篇、UML、软件设计原则https://blog.csdn.net/lili40342/article/details/128358435创建型模式https://blog.csdn.net/lili40342/article/details/128358392结构型模式https://blog.csdn.net/lili40342/article/details/128358313行为型模式https://bl…

UNIAPP实战项目笔记54 登录时用state存储用户信息并持久化用户登录和退出登录功能

UNIAPP实战项目笔记54 登录时用state存储用户信息并持久化用户登录和退出登录功能 登录信息各个页面同步使用的是state 登录信息的持久化使用的是本地存储 打开APP自动初始化本地存储数据到state中 实际案例图片 登录页面数据渲染 代码 login.vue页面 登录成功后显示的页面 &l…

论文阅读 - Social Bot-Aware Graph Neural Network for Early Rumor Detection - CCF B

目录 摘要&#xff1a; 1 绪论 2 问题定义 3 SBAG模型 3.1社交机器人检测 3.2 机器人感知图神经网络 3.2.1基于GCN的用户发布 3.2.2 基于GAT的用户交互 3.2.3文本编码器 3.2.4 输出层 3.3 训练 4 实验 4.1 数据集 4.2 实验设置 4.3 基线 4.4 实验结果 4.4.1 谣言…

对时间序列数据(牛仔裤销售数据集)进行LSTM预测(Matlab代码实现)

目录 &#x1f4a5;1 概述 &#x1f4da;2 运行结果 &#x1f389;3 参考文献 &#x1f468;‍&#x1f4bb;4 Matlab代码 &#x1f4a5;1 概述 LSTM模型的一个常见用途是对长时间序列数据进行学习预测&#xff0c;例如得到了某商品前一年的日销量数据&#xff0c;我们可以…

【GPU】Nvidia CUDA 编程高级教程——利用蒙特卡罗法求解近似值(NVSHMEM)

博主未授权任何人或组织机构转载博主任何原创文章&#xff0c;感谢各位对原创的支持&#xff01; 博主链接 本人就职于国际知名终端厂商&#xff0c;负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作&#xff0c;目前牵头6G算力网络技术标准研究。 博客…

MyBatis + SQL Server Using Table-Valued Parameters

一、实现原理 参考文档 Using table-valued parametersSystem requirements for the JDBC driverMicrosoft JDBC Driver for SQL Server1、微软官方封装了 JDBC 驱动 jar 包&#xff0c;提供 SQLServerDataTable 类&#xff1b; 2、Mybatis 官方提供自定义类型处理接口 TypeHa…

Python学习笔记-Pygame

目录 一、Pygame概述 1.安装Pyganme 2.Pygame常用模块介绍 2.1 display模块常用方法 2.2 pygame.event模块常用方法 2.3 Surface对象的常用方法 记述关于Pyganme开发的基本知识。 一、Pygame概述 Pygame是跨平台的python模块&#xff0c;转为电子游戏设计&#xff08;包…

Vue打包后的不同版本解析

vue源码打包版本 这里选取我们开发中常见的几个版本进行说明。 1、vue(.runtime).global(.prod).js 在html页面中通过 <script src“...”> 标签直接使用。通过CDN引入和npm下载的Vue就是这个版本。会暴露一个全局的Vue来使用。&#xff08;.runtime&#xff09;和&…

2022年12月python的字符串常用操作

字符串在整整个开发的过程中&#xff0c;使用频率相对来说是较高的。 在此总结几个字符串的常用操作&#xff0c; 字符串的操作&#xff0c;转换后即生成为新字符串 【长度统计 切片&#xff1a; 【 根据索引进行切片str[开始索引:结束索引:步长] 根据指定标识符进行切片str.sp…

【码极客精讲】桶排序

桶排序 (Bucket sort)或所谓的箱排序&#xff0c;是一个排序算法&#xff0c;工作的原理是将数组分到有限数量的桶子里。每个桶子再个别排序&#xff08;有可能再使用别的排序算法或是以递归方式继续使用桶排序进行排序&#xff09;。桶排序是鸽巢排序的一种归纳结果。当要被排…

【硬币识别】形态学硬币计数【含Matlab源码 683期】

⛄一、硬币图像识别简介 本设计为硬币图像识别统计装置&#xff0c;通过数码相机获取平铺无重叠堆积的硬币的图像&#xff0c;并通过Matlab工具处理后统计硬币的数目。 1 图像格式转换 取的图像格式为RGB彩色图像&#xff0c;需要先将其转换为8位256级的灰度图像。本程序采用…

SAP Gateway 里的 REST 概念

SAP Gateway 有助于轻松配置和使用 SAP Business Suite 系统的业务逻辑和内容&#xff0c;用于移动和 Web 应用程序。它降低了访问 SAP 数据所需的复杂性和技能组合&#xff0c;从而消除了部署障碍。使用简单的界面有助于缩短开发时间。 SAP Gateway 使以人为本的应用程序能够…

【笔记:模拟CMOS集成电路】MOS特性仿真分析

【笔记&#xff1a;模拟CMOS集成电路】MOS特性仿真分析前言一、电路图二、电路仿真&#xff08;1&#xff09;Ids与Vds的关系仿真仿真结果仿真结果分析&#xff08;2&#xff09;Ids与Vgs的关系仿真仿真结果仿真结果分析前言 本文为本人学习模拟集成电路相关知识的的学习笔记&a…