
采用流体排版(Fluid Typography)意味着创建能适应各种屏幕尺寸的文字。随着技术的不断进步,各种形状和尺寸的设备层出不穷。作为一名前端开发人员,您必须创建能很好地适应各种屏幕尺寸的应用程序。流体排版设计将改善用户体验和可访问性,本文将告诉你如何做到这一点。
使文本响应的老式 *** 是使用媒体查询。这是指针对不同的屏幕尺寸设置不同的断点。为每个断点指定一个特定的字体大小值。
下面的代码中有一个 h1 标题和一个段落。
<h1>Open Replay Blogger</h1> <p> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed eleifend, purus non bibendum sollicitudin. Neque dolor accumsan ligula, at tristique elit turpis eget tortor. Quisque interdum sapien vel mi lacinia laoreet. Vestibulum aliquam fringilla urna, ac condimentum justo suscipit id. Praesent ac sem eu ipsum volutpat feugiat. Proin suscipit ex sit amet viverra. Fusce in justo vitae tortor placerat tincidunt. </p>
下面的 CSS 代码示例显示了三个断点的媒体查询。
/* Default styles */
h1 {
text-align: center;
width: 500px;
margin: 20px auto;
}
p {
text-align: justify;
width: 350px;
margin: 20px auto;
}
/* Media queries to create responsive text */
@media screen and (max-width: 600px) {
h1 {
font-size: 22px;
}
p {
font-size: 14px;
}
}
@media screen and (min-width: 601px) and (max-width: 1024px) {
h1 {
font-size: 36px;
}
p {
font-size: 20px;
}
}
@media screen and (min-width: 1025px) {
h1 {
font-size: 72px;
}
p {
font-size: 36px;
}
}

在上图中,您可以看到不同屏幕尺寸下的不同字体大小。
使用媒体查询可在一定程度上使文本具有响应性。但它仍有一些局限性。
如今,前端开发人员有了创建流体文本的新 *** 。其中两种 *** 是使用视口单位( vw 和 vh )和 CSS clamp() 函数。
您将了解如何使用这两种 *** 。以及为什么一种 *** 比另一种 *** 更好。但在此之前,让我们先来考虑一下让类型流体化的一些优势。
以下是实施流体排版不仅有利于最终用户,而且有利于开发人员的一些原因。
视口单位( vw 表示视口宽度, vh 表示视口高度)是实现流体排版的一种简单 *** 。使用视口单位时,可以根据浏览器的视口设置字体大小。浏览器的视口是浏览器在用户设备上覆盖的屏幕区域。
下面是一个使用视口宽度的演示。让我们使用之一个示例中相同的 h1 标题和段落。
下面的 CSS 代码显示了使用视口宽度添加字体大小值的过程。
h1 {
font-size: 10vw;
}
p {
font-size: 3vw;
}

如图所示,通过 viewport width,您可以创建随宽度变化而平滑缩放的文本。而这只需要几行代码。
这似乎是你应该一直使用的理想解决方案,对吗?其实不然。原因就在这里。
由于 vw 单位基于视口宽度,因此可能导致文本过小或过大。在很小或很窄的屏幕上,文字可能会变得太小,无法舒适地阅读。另一方面,对于使用超宽屏幕的用户来说,文本可能会变得过大。这也会造成布局问题。
有一种更好的 *** 可以解决这些潜在问题。那就是使用 CSS Clamp() 函数。
CSS clamp() 函数可让你设置字体大小值,以适应各种屏幕尺寸。它还允许你设置最小和更大字体大小值。
这意味着使用 clamp() 函数时,可以防止文字变得过小或过大。这有助于在响应性和可读性之间取得平衡。并创造更好的用户体验。
clamp() 函数取三个值。
.text {
font-size: clamp(min-value, pref-value, max-value);
}
min-value 是最小字体大小值。pref-value 是首选的字体大小值。max-value 是更大字体大小值。下面我们来看一个使用 clamp() 函数设置字体大小的示例。
p {
font-size: clamp(26px, 5vw, 52px);
}
这里的首选值是 5vw(视口宽度的 5%)。
但考虑到视口宽度为 400px 的情况。这意味着 5vw(400px 的 5%)是 20px。在这种情况下,5vw 的首选字体大小就是 20px。但浏览器会将字体大小设置为 26px,即最小值。
您设置的最小值和更大值就是边界。请确保字体大小值不小于指定的最小值,或大于指定的更大值。或大于指定的更大值。
上面的示例提供了以像素为单位的最小值和更大值。但一般认为更佳做法是使用相对单位,如 rem 。
相对单位(如 rem )会根据用户的偏好作出反应。如果用户改变了浏览器的默认字体大小,文本也会随之改变。
下面我们来看一个例子。
h1 {
font-size: clamp(3rem, 7vw + 1rem, 5rem);
}
p {
font-size: clamp(0.5rem, 2vw + 1rem, 4rem);
}

注:为首选值添加 rem 值可确保它响应用户的首选。
有时,为各种字体级别确定首选值以及最小和更大字体大小是一项挑战。你可以花时间反复试验。或者,你也可以利用这些工具为你的字体创建一个流体比例。
以下是在应用程序中实施流体排版时需要考虑的一些更佳实践。
clamp() 函数。在撰写本文时,为 94%。但您仍可以为可能不支持 clamp 的浏览器添加回退值。这将有助于提高应用程序的可访问性。在本文中,您已经了解了使文字适应不同屏幕尺寸的各种 *** 。在应用程序中实施流体排版将使其更易于访问。CSS clamp() 函数可以让你摆脱僵化的媒体查询。这不仅能改善用户体验,还能让开发人员轻松维护代码。
宝塔面板现在已经成为国内许多站长必备的服务器管理必备工具。相比直接使用SSH+FTP来管理服务器,宝塔面板可以提供可视化管理,包括文件管理、数据库管理、数据备份、SSL配置等等。 如果你希望更简单高效地管理您的网站及服务器,宝塔面板是不错的选择。下面是一些宝塔面板安装及常见问题:...
每台连接到Internet的计算机都有一个Internet协议 (IP) 地址。但是,并非所有IP地址的外观或行为都相同。 如果您使用计算机网络或服务器,了解动态IP和静态IP之间的区别至关重要。通过详细了解每个协议,您可以选择最适合您需求的解决方案。 在本文中,我们将讨论静态和动态IP之间...
宝塔的数据库管理,是基于phpmyadmin管理和新建数据库。其最大的便利性就是类似,通过面板可以快速访问进行管理操作,无需单独访问phpmyadmin的主页。 此外,在宝塔面板进行数据库管理,你也对数据库名、用户名及密码等信息一目了然,及可以对数据库执行快速备份或者导入。 添加数据...
宝塔面板其中一个最为便捷的功能之一,无需SFTP或者FTP即可对服务器的文件内容进行上传、下载、编辑及删除等管理操作。 文件管理,用于管理该服务器上的文件内容。 文件的基础操作 文件的基础操作有哪些了,主要有这些方面:复制、粘贴、剪切、删除、重命名、压缩、刷新、新建文件、新建目录。...
宝塔面板提供丰富的软件以一键安装,这让服务器环境搭建提供不少的便利性,站长可以根据实际需求快速编译安装以实现不同的功能需求。 软件管理,主要是宝塔提供的一些面板扩展插件。 Nginx Nginx是一个高性能的HTTP和反向代理服务器,具有轻量级、占用内存小,并发能力强等优势。 w...
Laravel多年来一直是PHP应用程序开发的摇滚明星,这是有充分理由的。庞大的生态系统、活跃的社区、强大的就业市场、成功的初创公司——它拥有一切让采用新技术变得值得的东西。 如果你想学习Laravel,你不需要更进一步。通过浏览本指南,您可以找到最适合您的Laravel教程,与您的知识水平和...