使用 CSS 的 line-height 属性来提高可读性

在本文中,您将了解 CSS line-height 属性以及如何使用它来创建视觉上愉悦、易读的文本。

您可能以前见过 line-height 的使用:

p {font-size: 16px;line-height: 1.2;
}

但它是如何工作的,以及在 CSS 中扮演着什么角色呢?

CSS 中的排版根源

CSS 中的许多概念都源自排版学科。一个例子就是 CSS 的 line-height 属性,它设置了换行文本两个基线之间的距离。

“基线”是文本所在的虚拟线。

!基线演示

例如,如果我们在 <div> 标签中有这样一小段文本:

<div>The alligator went for a swim in the deep lagoon.
</div>

如果您调整浏览器窗口大小,使文本换行到下一行,您将会看到两个基线和一个行高(用黄色箭头表示):

!行高演示

CSS line-height 属性的较大值将扩大这个距离,而较小的值将缩小它。


行高与文本可读性

line-height 属性在使文本对用户可读方面起着核心作用。当您将 line-height 设置得太小时,文本会显得拥挤。长时间阅读这样的文本会让用户感到疲惫:

!小行高

如果它太大,用户将难以产生对所阅读内容的兴趣:

!行高大小

但是当您找到合适的 line-height 时,您的文本将会感到宽敞和和谐 💮🌺🌸

!良好的行高示例

找到合适的 line-height 将根据您的需求而变化,但它也取决于您使用的字体系列。这是因为每种字体都有自己的个性,并且在大块文本中会有不同的“阅读”效果。

例如,Helvetica 和 Times New Roman 即使它们的 font-size 相同,也需要不同的 line-height 间距。

line-height 的语法

您可以使用各种值来设置 line-height!它与其他 CSS 属性非常不同,因为它可以接受典型的 px% 值,但它还有自己独特的“无单位”值:

/* 使用浏览器默认值。通常为所有主要浏览器的 "1.2" */
line-height: normal;/* 无单位值(只有 line-height 可以这样做!) */
line-height: 1.2;/* <length> 值,如 px、rem、em、pt */
line-height: 3em;/* <percentage> 值 */
line-height: 120%;

行高由黄色箭头表示。

!行高演示

浏览器如何计算 line-height

如果您使用百分比或“无单位”值,字体大小将被计入结果的 line-height。例如,以下两个代码片段都将由浏览器计算为 19.2px

.myText {font-size: 16px;line-height: 1.2  /* (19.2px = 16 x 1.2) */
}
.myText {font-size: 16px;line-height: 120%;  /* (19.2px = 16 x 1.2) */
}

然而,如果您使用像 px|em|rem|pt 这样的“长度”值,font-size 将不会用于计算 line-height

.myText {font-size: 16px;line-height: 20px;  /* 总是 20px! */
}

结论

一般来说,对于大多数字体来说,良好的 line-height 范围在 1.5 到 1.7 之间。例如,Alligator.io 使用的行高为 1.6。这更多地是一门艺术而不是科学,很多时候您会发现自己打开浏览器的“开发者工具”,微调 line-height 直到感觉“刚刚好” ✨👌

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

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

相关文章

基于LSTM实现春联上联对下联

按照阿光的项目做出了学习笔记&#xff0c;pytorch深度学习实战项目100例 基于LSTM实现春联上联对下联 基于LSTM&#xff08;长短期记忆网络&#xff09;实现春联上联对下联是一种有趣且具有挑战性的任务&#xff0c;它涉及到自然语言处理&#xff08;NLP&#xff09;中的序列…

Android 4.4 以下,OkHttp访问Https报错,设置了sslSocketFactory仍无效的解决方法

背景 Android 4.4 及以下&#xff0c;使用 OkHttp 发送 Https 请求&#xff0c;报以下错误&#xff1a; javax.net.ssl.SSLHandshakeException: javax.net.ssl.SSLProtocolException: SSL handshake aborted: ssl0x6b712c90: Failure in SSL library, usually a protocol erro…

【Jemter】安装

1.准备前提工作 2.安装和卸载jdk 1&#xff09;安装双击jdk 2&#xff09;添加环境变量 此电脑–属性–高级系统设置–环境变量–系统变量–path删除/新建 C:\Program Files\Java\jdk-1.8\bin C:\Program Files\Java\jdk-1.8\jre 3&#xff09;验证 以防万一要卸载&#xff…

基于yolov5的铁轨缺陷检测系统,可进行图像目标检测,也可进行视屏和摄像检测(pytorch框架)【python源码+UI界面+功能源码详解】

功能演示&#xff1a; 基于yolov5的铁轨缺陷检测系统&#xff0c;系统既能够实现图像检测&#xff0c;也可以进行视屏和摄像实时检测_哔哩哔哩_bilibili &#xff08;一&#xff09;简介 基于yolov5的铁轨缺陷检测系统是在pytorch框架下实现的&#xff0c;这是一个完整的项目…

Vue 使用Element Plus

1.官网安装 | Element PlusA Vue 3 based component library for designers and developershttps://element-plus.gitee.io/zh-CN/guide/installation.html#%E4%BD%BF%E7%94%A8%E5%8C%85%E7%AE%A1%E7%90%86%E5%99%A8 npm install element-plus --save2. 全局安装图标 npm ins…

如何避免前端请求明文传输

要在前端发送请求时做到不明文&#xff0c;有以下几种方法&#xff1a; HTTPS 加密传输&#xff1a; 使用 HTTPS 协议发送请求&#xff0c;所有的数据都会在传输过程中进行加密&#xff0c;从而保护数据不以明文形式传输。这样即使数据被截获&#xff0c;黑客也无法直接获取到数…

连接kafka报错:java.io.IOException: Can‘t resolve address:

修改电脑host文件:C:\Windows\System32\drivers\etc\hosts 加上一行 192.168.1.XXX MHA_SLAVE2&#xff08;192.168.1.XXX 这个是安装kafka 的服务器地址&#xff0c;MHA_SLAVE2是kafka的容器id&#xff09;

总结虚拟机的安装步骤:

总结虚拟机的安装配置步骤 保障镜像的基本完整&#xff0c;查看其镜像源是否是完整的&#xff0c;不能使用redhat的配置&#xff0c;原因在于其yum源中可能存在一些配置的消失。然后开始安装虚拟机&#xff0c;虚拟机的软件版本越高其运行的效果也就越好&#xff0c;在进入初始…

极狐GitLab 16.2 重点功能解读,更好的DevOps体验等你来【二】

GitLab 是一个全球知名的一体化 DevOps 平台&#xff0c;很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版&#xff0c;专门为中国程序员服务。可以一键式部署极狐GitLab。 极狐GitLab 在去年 7 月份发布了 16.2 版本。此次发布带来了价…

构建可视化工具选择策略

更多的信息总是意味着更好的结果吗&#xff1f;这完全取决于项目所处的环境。 以烘焙为例。当你做蛋糕时&#xff0c;你的原材料经历了许多化学变化和烹制过程。如果任何一个环节出现问题&#xff0c;蛋糕就做不好。但这并不意味着你需要理解食材在分子级别上发生了什么&#…

科技云报道:阿里云降价,京东云跟进,谁能打赢云计算价格战?

科技云报道原创。 就在大家还在回味2月29日阿里云发布“史上最大降价”的惊喜时&#xff0c;京东云连夜发布降价消息&#xff0c;成为第一家跟进的云服务商&#xff0c;其“随便降&#xff0c;比到底&#xff01;”的口号&#xff0c;颇有对垒的意味&#xff0c;直接吹响了云计…

阿里巴巴中国站1688商品详情API:获取数据的关键步骤与技巧

阿里巴巴中国站&#xff08;1688.com&#xff09;是一个大型的B2B电商平台&#xff0c;提供了丰富的商品信息。然而&#xff0c;关于商品详情API的具体使用&#xff0c;通常需要注册成为阿里巴巴的开发者并遵循其API开发文档进行操作。由于API的具体实现和接口可能会随时间变化…

用skopeo检查docker image

文章目录 环境 环境 OCP 4.14.12 yum install skopeo -y在 ibm-dmc-bundle/stable/ibm-dmc-bundle/build/operand_images 处&#xff0c;找到digest号。 比如&#xff0c;找到这一行&#xff1a; DMC_ADDON_API_IMAGE_DIGEST_amd64sha256:f8208890bf4058e17223afe1c40a29df…

java 从零开始手写 RPC (00) 概览 overview

rpc rpc 是基于 netty 实现的 java rpc 框架&#xff0c;类似于 dubbo。 主要用于个人学习&#xff0c;由渐入深&#xff0c;理解 rpc 的底层实现原理。 特性 基于 netty4 的客户端调用服务端 p2p 调用 serial 序列化支持 timeout 超时处理 register center 注册中心 l…

retinaNet FocalLoss源码详解

targets[positive_indices, assigned_annotations[positive_indices, 4].long()] 1 ## 把正样本所对应的锚框所对应的类别的列置为1 # aim torch.randint(0, 1, (1, 80)) # tensor([[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 0…

react tab选项卡吸顶实现

react tab选项卡吸顶实现&#xff0c;直接上代码&#xff08;代码有注释&#xff09; tsx代码 /* eslint-disable react-hooks/exhaustive-deps */ import React, { useEffect, useState } from "react"; import DocumentTitle from react-document-title import s…

智奇科技工业 Linux 屏更新开机logo

智奇科技工业 Linux 屏更新开机logo 简介制作logo.img文件1、转换格式得到logo.bmp2、使用Linux命令生成img文件 制作rootfs.img文件替换rootfs.img中的logo 生成update.img固件附件 简介 智奇科技的 Linux 屏刷开机logo必须刷img镜像文件&#xff0c;比较复杂。 制作logo.i…

Python教程,python从入门到精通 第1天 温习笔记

1.1 字面量 1.2 注释 1.3 变量 1.4 数据类型 1.5 数据类型转换 1.6 标识符 1.7 运算符 1.8 字符串的三种定义方式 1.9 字符串拼接 1.10 字符串格式化 1.11 掌握格式化字符串的过程中做数字的精度控制 1.12 掌握快速字符串格式化的方式 1.13 字符串格式化&#xff0d;表达式的格…

《MySQL实战45讲》课程大纲

1MySQL实战45讲-01基础架构&#xff1a;一条SQL查询语句是如何执行的&#xff1f;2MySQL实战45讲-02日志系统&#xff1a;一条SQL更新语句是如何执行的&#xff1f;3MySQL实战45讲-03事务隔离&#xff1a;为什么你改了我还看不见&#xff1f;4MySQL实战45讲-04深入浅出索引&…

【C++干货基地】六大默认成员函数: This指针 | 构造函数 | 析构函数

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 引入 哈喽各位铁汁们好啊&#xff0c;我是博主鸽芷咕《C干货基地》是由我的襄阳家乡零食基地有感而发&#xff0c;不知道各位的…