javascript - 如何获取由 css 设置的元素的字体大小

标签 javascript jquery css dom

我正在编写一个简单的 jQuery 来按一定百分比更改元素的字体大小。我遇到的问题是,当我使用 jQuery 的 $('#el').css('font-size') 获取大小时,它总是返回一个像素值,即使使用 em 设置也是如此。当我使用 Javscript 的 el.style.font-size 属性时,它不会返回一个值,直到一个值被同一属性显式设置。

有什么方法可以使用 Javascript 获取原始 CSS 设置的字体大小值吗?您的方法对跨浏览器的友好程度如何?

提前致谢!

编辑:我应该注意到,所有经过测试的浏览器(见下面的评论)都允许我使用上面提到的两种方法使用“em”值设置文本大小,此时jQuery .css() 返回等效的“px”值,Javascript .style.fontSize 方法返回正确的“em”值。也许最好的方法是在页面加载时初始化元素,立即给它们一个 em 值。

最佳答案

除 IE 之外的所有目标浏览器都会向您报告元素的 "Computed Style"。在您的情况下,您不想知道font-size 的计算px 大小是多少,而是您希望在你的样式表。

只有 IE 可以通过其 currentStyle 功能获得此权利。不幸的是,在这种情况下,jQuery 反对你甚至让 IE 以 px 报告计算的大小(它使用 Dean Edwards 的 this hack 来这样做,你可以自己检查 the source) .

所以简而言之,你想要的是不可能的跨浏览器。只有 IE 可以做到(前提是您绕过 jQuery 来访问该属性)。将值设置为内联(而不是在样式表中)的解决方案是您能做的最好的,因为这样浏览器就不需要计算任何东西。

关于javascript - 如何获取由 css 设置的元素的字体大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1313995/

相关文章:

javascript - 窗口准备好并滚动后运行代码

javascript - 日期时间选择器。小部件不显示

html - 如何垂直对齐和水平对齐div?

javascript - 使用 Selenium 和 PhantomJS 测试 AngularJS 应用程序

javascript - Accordion 习题ie6-9

javascript - 导航器.onLine

javascript - 根据 3 个位置的当前时间更改 3 个背景图像

javascript - 根据用户的屏幕宽度加载不同的 </iframe>

css - 一种固定分辨率的媒体查询

javascript - 从字符串中获取元素数组并查找值