- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我想知道 helvetica 在 20px 时的 .ex 值。换句话说,在下面的网页中,“Hello”的 ex 值是多少,以像素为单位? (更一般地说,如何对任意大小的任意字体执行此操作?)
<html>
<head>
<style>
body {
font-family:Helvetica;
font-size:20px;
}
</style>
</head>
<body>
Hello
</body>
</html>
===========
10.467 像素
(safari 和 chrome 都有),而 Helvetica 在 21px 的 ex 值接近
10.982 像素
(同样,safari 和 chrome 都有),等等。这些数字似乎与字体及其大小之外的任何其他参数无关。那么如何获取呢?
由于我获取这些 ex 值的方法非常复杂,而且我不是在获取字体的“官方”ex 值,而是逆向工程 ex 值,所以我想知道一个非临时的获取“官方”前值的方法。
最佳答案
一种不使用任何外部库的方法是创建一个高度为 1ex 的 block 并测量它有多高。
var div = document.createElement('div'); div.style.fontSize = '1000px';
div.style.height = '1ex';
document.body.append(div);
var xHeight = div.scrollHeight;
document.body.removeChild(div);
console.log('1ex = 0.'+xHeight+'em');
但这种方法的问题是结果四舍五入为整像素;因此,如果您使用 20px 的字体大小执行此操作,您将获得 10px 而不是您获得的 10.467。这就是我使用 1000 像素的原因,所以结果至少有一定的精度。
另一种方法是使用库,例如 FontMetrics .从他们的主页:
<script src="FontMetrics.min.js" type="text/javascript"></script>
const metrics = FontMetrics({
fontFamily: 'Roboto',
// Optional (defaults)
fontWeight: 'normal',
fontSize: 200,
origin: 'baseline'
})
console.log('1ex = '+(-metrics.xHeight)+'em');
(无法制作此示例的实时片段,因为他们的 JS 文件没有 CDN。但我下载并测试了 JS 文件并且它有效。)
关于html - 如何找到特定大小的特定字体的ex值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49649160/
例如,我有一个父类Author: class Author { String name static hasMany = [ fiction: Book,
代码如下: dojo.query(subNav.navClass).forEach(function(node, index, arr){ if(dojo.style(node, 'd
我有一个带有 Id 和姓名的学生表和一个带有 Id 和 friend Id 的 Friends 表。我想加入这两个表并找到学生的 friend 。 例如,Ashley 的 friend 是 Saman
我通过互联网浏览,但仍未找到问题的答案。应该很容易: class Parent { String name Child child } 当我有一个 child 对象时,如何获得它的 paren
我正在尝试创建一个以 Firebase 作为我的后端的社交应用。现在我正面临如何(在哪里?)找到 friend 功能的问题。 我有每个用户的邮件地址。 我可以访问用户的电话也预订。 在传统的后端中,我
我主要想澄清以下几点: 1。有人告诉我,在 iOS 5 及以下版本中,如果您使用 Game Center 设置多人游戏,则“查找 Facebook 好友”(如与好友争夺战)的功能不是内置的,因此您需要
关于redis docker镜像ENTRYPOINT脚本 docker-entrypoint.sh : #!/bin/sh set -e # first arg is `-f` or `--some-
我是一名优秀的程序员,十分优秀!