【问题标题】:Will jQuery ever return a CSS measurement in something other than px?jQuery 会返回 px 以外的 CSS 测量值吗?
【发布时间】:2011-04-21 16:34:27
【问题描述】:

我正在重写我的Textarea Line Count plugin

当我调用$("#someElement").css("letter-spacing") 时,我会得到ems 或px 以外的任何值吗?基于此示例:http://jsfiddle.net/xhhr2/,至少在 Google Chrome 中,似乎 jQuery 或浏览器正在将测量值转换为 px。我可以一直期待这种行为吗?

【问题讨论】:

    标签: javascript jquery html css


    【解决方案1】:

    根据Crescent Fresh's answer 链接到 Dean Edwards 的 hack,jQuery 竭尽全力返回所有浏览器的实际计算像素值,而不是样式表中最初定义的值,所以看起来是的,你可以依靠它。

    【讨论】:

    【解决方案2】:

    据我所知,浏览器必须将你给它的每个尺寸(无论是em%.等)转换为像素。这就是 DOM 存储它的方式,因此 jQuery 会将该值返回给您。

    编辑 根据这个答案here,(由Pekka的答案引用)只有IE支持currentStyle,它给出了CSS设置的大小(包括单位)。显然,没有其他浏览器支持这一点,而是它们都使用computed style 将所有内容转换为像素。所以我大概猜对了一半。 :P

    【讨论】:

    • 你能提供一些证据吗?
    • 有道理。如果 jQuery(或与此相关的浏览器)在 % 中返回任何测量值,我会很生气 :)
    • 我现在找不到它,但我似乎记得遇到过一个 SO 问题,其中提到来自 CSS 的实际字符串,包括原始单位(95%1.2em)将是与旧版本的 jQuery 一起返回(我不确定,但我会说
    • 我刚刚用pt 尝试了我的小jsFiddle 示例,并且测量值也确实转换为px% 什么也没做;我猜letter-spacing 不能用百分比来表示。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-04
    • 2014-03-19
    • 1970-01-01
    • 2012-02-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多