是否可以使用javascript以em为单位获取窗口的宽度?

ham*_*ime 37 javascript jquery em media-queries

我正在寻找一种可靠的方法来使用javascript以em为单位获取窗口的宽度.我很惊讶地看到jQuery只返回像素测量结果.任何帮助表示赞赏.

ham*_*ime 50

这似乎有效:

$(window).width() / parseFloat($("body").css("font-size"));
Run Code Online (Sandbox Code Playgroud)

  • 对于那些依赖于font-size%和媒体查询的人,将$("body").css("font-size")更改为$("html").css("font-size")以获得最准确的窗口宽度在ems. (5认同)

Bra*_*rad 20

这是一个不需要jQuery的解决方案,并且不需要显式的字体大小声明.

window.innerWidth / parseFloat(
  getComputedStyle(
    document.querySelector('body')
  )['font-size']
)
Run Code Online (Sandbox Code Playgroud)

  • +1-不会有什么不同,但是`html`会比`body`更加*正确*,因为em会使用根字体大小,这就是html的 (2认同)