什么决定了字母所在元素的最高和最低字母以及顶部和底部边框之间的间距?

2024-04-25

是什么决定了从最高字母顶部到上边框的空间以及从字母最底部部分(如“y”的尾部)到下边框的空间?

Using FontForge, it looks like both the ascender and descender add up to be 1000em units and the 'em square' looks to be 1000. Which means font-size: 30px; should really be 30px. enter image description here

<header>
<link href="https://fonts.googleapis.com/css2?family=Pacifico&display=swap" rel="stylesheet">
</header>

<div style="font-family: 'Pacifico'; font-size: 30px; line-height: 30px; border: 1px solid red;">
    Some play
 </div>

让我们首先枚举与您的特定字体相关的所有指标:

  • 上升者:1303
  • 下降:453
  • 小写字母(例如):460
  • 大写字母:840
  • 内容区域:1303 + 453 = 1756

如果你设置font-size:30px那么内容区域将是52.68px

$(document).ready(function() {
  setTimeout(function() {
    console.log($('div#font span').outerHeight());
  },500)
});
span {
  outline: 1px solid green;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link href="https://fonts.googleapis.com/css2?family=Pacifico&display=swap" rel="stylesheet">


<div id="font" style="font-family: 'Pacifico'; font-size: 30px;  outline: 1px solid red;">
  <span>Some play</span>
</div>

正如你可以清楚地看到p and y已经触及底部了。为了获得顶部部分,我们需要考虑大写字母高度 (840),它等于25.2px for font-size:30px。我们将其添加到下降器中,我们得到38.79px

span {
  display: inline-block;
  transform: translateY(-7px);
}
<link href="https://fonts.googleapis.com/css2?family=Pacifico&display=swap" rel="stylesheet">


<div id="font" style="font-family: 'Pacifico'; font-size: 30px;line-height:39px;  outline: 1px solid red;">
  <span>Some play</span>
</div>

但你会注意到l比大写字母有点高,如果添加更多字母,考虑所有不同的情况会变得更加棘手:

span {
  outline: 1px solid green;
}
<link href="https://fonts.googleapis.com/css2?family=Pacifico&display=swap" rel="stylesheet">


<div id="font" style="font-family: 'Pacifico'; font-size: 30px;  outline: 1px solid red;">
  <span>ÂÄÏÎÖË ABCMNOPQTSome play gj </span>
</div>

这些测试的结论是,您拥有将绘制所有角色的内容区域,并且您确信它们永远不会出去。该区域是 Ascender + Descender 的总和,但由于具有特定的文本,因此很难识别您正在使用的字符的区域。带或不带大写字母、带或不带下行字母、带或不带某些特殊字符等,您将不会得到相同的结果。

相关问题:特定文本字符可以改变行高吗? https://stackoverflow.com/q/55978130/8620333

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

什么决定了字母所在元素的最高和最低字母以及顶部和底部边框之间的间距? 的相关文章

  • 如何使用ajax从服务器接收返回的数据?

    基本上我有一个带有用户名文本框和提交按钮的表单 现在我想要的是 当用户在文本框中输入文本时 它应该获取文本框值并将用户名发送到服务器 以便服务器可以检查该用户名是否被任何其他用户占用 我可以将文本值发送到服务器 但我不知道如何接收回一些数据
  • 如何从 Backbone 集合中提取多个属性?

    我试图从 Backbone 集合中提取多个属性 但它返回undefined 收藏 id 1 name raju age 23 sex male hobbies id 2 name ramesh age 43 sex male hobbies
  • Javascript 不会删除 div 中的所有元素

    创建这段 JavaScript 代码是为了删除 div 内的所有输入 function remove inputs var elements document getElementById thediv getElementsByTagNa
  • 如何在 CSS 选择器中使用 JSF 生成的带有冒号“:”的 HTML 元素 ID?

    我一直在使用 JSF 处理一个简单的 Java EE 项目
  • 在多个 Compass 项目中加载全局 SASS 文件

    我想创建一个多个 Compass 项目将访问的 SASS 文件目录 该目录将包含许多具有相似样式 表单元素 clearfixes 重置等 的常见元素的 SASS 文件 我希望在多个项目中访问和使用这些元素 如何在多个项目中包含这个全局 SA
  • SVG 视图框显示屏幕外项目

    我正在使用 HTML5 制作游戏svg标签为图形提供多分辨率显示 游戏的大部分内容已经完成 但在测试中我刚刚遇到了一个主要错误 其中涉及 SVG 对象可见 尽管在非本机分辨率下位于视图框之外 我不确定这是否是我的代码或浏览器本身的缺陷 Go
  • 在 Safari 中转换变换和大小 (9.1)

    我试图在元素上实现平滑过渡transform translate 和一些其他属性 是的 我读过有关匹配供应商前缀的内容 它在 Chrome 和 FF 中工作正常 但在 Safari 中它不能平滑地动画转换 在最后跳转 在应用翻译之前 它似乎
  • CSS - a:访问过:悬停?

    如何应用字体color仅指向已经存在的超链接visited并且正在被hover通过鼠标 本质上 我想做的是 a visited hover color red 是的 这是可能的 这是一个例子 a href http www google c
  • 表、TR各2个循环、PHP、HTML

    我有一个 html 表 我使用一些循环来获取一些数据 该数据以这种方式显示 tr td Data td tr next loop 但我不希望它每 2 个甚至 3 个循环关闭表行 tr 所以数据可能如下所示 tr td Data td td
  • CSS 使文本框填充所有可用宽度

    我的网页中有以下 行 div style width 100 Some Text div
  • Firefox 中缺少表格边框

    我有一个包含数据的表格 当我在 Firefox 中查看它时 某些边框没有显示 请参阅随附的屏幕截图 在任何其他浏览器中都不会发生这种情况 在 Firefox IE Safari 和 Chrome 中测试 知道为什么以及如何解决它吗 我使用样
  • 如何将日期格式设置为 (dd/mm/yyyy hh:mm:ss)

    如何将下面的日期转换为此模板 dd mm yyyy hh mm ss 05 04 2021 14 52 我尝试这样做 但我只得到时间 而不是日期和时间 var data new Date 05 04 2021 14 52 var time
  • CSS:变换:翻译(-50%,-50%)使文本模糊[重复]

    这个问题在这里已经有答案了 我想将我的div我使用这种方法 但它使我的文本在div blurry div top 50 left 50 webkit transform translate 50 50 transform translate
  • 垂直滚动不适用于 Mobile Safari

    由于某些原因 当我在移动 Safari iOS 9 1 iPhone 5 Safari 8 1 上访问我的网站时 垂直滚动无法正常工作 https sleepy anchorage 3222 herokuapp com https slee
  • 单击其他 div 时切换类中的单个元素 Jquery

    我正在尝试为 WordPress 构建设置一个简单的评论切换 CSS div class commenttoggle p class popcom Show Comments p Clickable Button div div class
  • 使用 html 属性的 DOM 惩罚

    我正在考虑使用 HTML5 数据属性来更轻松地编写我的应用程序的第三方脚本 因此 考虑两种情况 页面上有 10 000 个 HTML 元素 例如 div Sticker div 还有其他 10 000 个 HTML 元素 例如 div St
  • 如何根据 URL 路径添加 CSS 类?

    如何根据我所在的路径将 CSS 类添加到 div 中 包括如果我在其中包含 则不应该出现问题 div class popup ul li a href vs Example 1 a li li a href bod Example 2 a
  • 使用 Angular JS 使图像出现在弹出窗口上

    这是我在 StackOverflow 上的第一篇文章 我正在自学 Angular 所以我是一个初学者 目前很困惑 我正在使用 Angular 创建一个网页 其中一个页面涉及一个按钮和一个弹出窗口 我想将图像放入弹出窗口中 但在实现此操作时遇
  • 如何在 PHP、HTML 表单和 Javascript 之间传递布尔值

    我有一个 PHP 程序 它使用 HTML 表单并使用 JavaScript 进行验证 HTML 表单中有一个隐藏字段 其中包含一个布尔值 该值由 PHP 设置 由 JavaScript 在提交时进行验证 然后传递到另一个 PHP 页面 当我
  • 关闭网站的 IE 8 兼容模式

    我的公司使用IE8作为默认浏览器 并且默认为所有内联网站点设置兼容模式 我正在构建一个在关闭兼容模式时可以工作的 Intranet 站点 我正在使用 Reset css 和几个开源 JavaScript 程序 例如数据表 我想做的是强制关闭

随机推荐