我正在编写一个简单的 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/