javascript - 未在 CSS 中定义时如何获取实际呈现的字体?

标签 javascript css fonts

当未定义 CSS font-facefont-size 属性时,如何获取元素的实际字体和字体大小?

例如,JavaScript 片段

object.style.fontFamily

不返回任何值。这很明显,假设 CSS 没有在任何地方将样式应用于 object。但是,当然,某种字体用于呈现文本,可能是系统字体或网络浏览器默认字体。

那么,例如,JavaScript 可以获取渲染的字体吗?

最佳答案

我建议这个函数:

function css( element, property ) {
    return window.getComputedStyle( element, null ).getPropertyValue( property );
}

用法:

css( object, 'font-size' ) // returns '16px' for instance

注意:getComputedStyle 在 IE8 中不起作用。

现场演示: http://jsfiddle.net/4mxzE/

console.log(
  getComputedStyle(document.getElementById('test'), null)
    .getPropertyValue('font')
)
#test {
  font-family: fantasy, cursive;
}
<div id="test">Lorem ipsum dolor sit font-face</div>

关于javascript - 未在 CSS 中定义时如何获取实际呈现的字体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7444451/

相关文章:

html - 主题字体不适用于段落

user-interface - 界面研究是否表明 Arial 优于 Verdana/Tahoma(用于屏幕阅读)

javascript - "Label tileLayer"黑客攻击导致无法点击的覆盖层

javascript - 如何将 angular.module 文件中的controller.js 文件设为 "import"

html - 什么 css 或 html 导致 safari 浏览器不显示图像?

javascript - 在不移动网格的其他行的情况下替换行中的所有 div

html - 背景悬停颜色开箱即用

javascript - js 段函数不再工作

javascript - 内部forEach循环中的ajax,在内部回调触发后完成

android - 在Android中将应用程序字体更改为roboto字体的最简单解决方案