我试图找到font-sizeCSS属性中设置的值对应的内容.
为了给出上下文,我想在CSS中获得em我从其OS/2指标中知道的部分字体(在资本高度之上和基线之下)的大小.该em单元是相对于给定font-size和OS/2的指标是相对于EM-正方形.
我的期望是基于以下参考.我没有发现任何更清楚或更准确的东西.
根据CSS2.1中的W3C参考font-size,以及我在主题(这里,这里和这里)发现的所有Stack Overflow问题中的引用:
字体大小对应于em square,这是排版中使用的概念.请注意,某些字形可能会在其正方形之外出血.
根据我在排版中的一些知识,em square是字体度量的整个方格,其中定义了上升,下降,间隙,(等等)线.在OS/2指标中,em square字体本身的大小(通常为1000或2048 UPM).
我从W3C找到的唯一解释是1997年CSS1的旧参考,它与em square我使用的现代数字定义一致:
某些值(例如宽度度量)以相对于抽象方块的单位表示,抽象方块的高度是相同类型大小的类型行之间的预期距离.这个方块称为EM方块.(...)常用值为250(Intellifont),1000(类型1)和2048(TrueType).
因此,如果我正确理解这些引用,则应使用指定font-size的值来生成整个em square字体,并且我们应该能够根据字体的大小和度量来计算字体的一部分的大小.
例如,用......
.my-letter {
font-family: 'Helvetica Neue';
font-size: 100px;
text-transform: uppercase;
}
Run Code Online (Sandbox Code Playgroud)
......我们应该有一个em square的100px,因为Helvetica Neue有一个资本高度714 / 1000(sCapHeight在OS/2表)的资本高度 …
我正在寻找一种方法,使用Node v7.6或更高版本,在调用异步函数时获得Bluebird Promise(或任何非本机承诺).
我可以这样做:
global.Promise = require('Bluebird'); // Or Q/When
var getResolvedPromise = () => Promise.resolve('value');
getResolvedPromise
.tap(...) // Bluebird method
.then(...);
Run Code Online (Sandbox Code Playgroud)
请参阅:我可以使用global.Promise = require("bluebird")
我希望能够做到这样的事情:
global.Promise = require('Bluebird'); // Or Q/When
var getResolvedAsyncAwaitPromise = async () => 'value';
getResolvedAsyncAwaitPromise()
.tap(...) // Error ! Native Promises does not have `.tap(...)`
.then(...);
Run Code Online (Sandbox Code Playgroud)
我知道我可以随时使用:
Bluebird.resolve(getResolvedAsyncAwaitPromise())
.tap(...);
Run Code Online (Sandbox Code Playgroud)
但我很好奇是否有办法改变返回的默认Promise AsyncFunction.似乎包含了构造函数:
请注意,AsyncFunction不是全局对象.它可以通过评估以下代码获得.
Run Code Online (Sandbox Code Playgroud)Object.getPrototypeOf(async function(){}).constructor
如果没有办法改变AsyncFunction's Promise构造函数,我想知道这种锁定的原因.
谢谢 !
async-await ×1
bluebird ×1
css ×1
es6-promise ×1
font-size ×1
fontmetrics ×1
fonts ×1
node.js ×1
promise ×1
w3c ×1