window.screen 是获取设备屏幕物理或系统级显示能力的全局对象,返回分辨率等信息;screen.width/height 表示完整屏幕 css 像素宽高,availwidth/availheight 排除系统 ui 占用区域;其值已适配缩放,不适用于响应式判断或移动端检测。

window.screen 是浏览器提供的全局对象,用于获取用户设备的屏幕信息。它不反映当前浏览器窗口大小,而是返回设备物理或系统级的屏幕显示能力,比如分辨率、可用区域等。
获取屏幕宽高(分辨率)
最常用的是 window.screen.width 和 window.screen.height,它们返回屏幕的完整像素宽度和高度(单位:px)。
- window.screen.width —— 屏幕水平方向总像素数(例如 1920)
- window.screen.height —— 屏幕垂直方向总像素数(例如 1080)
示例:
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
console.log(`屏幕分辨率:${screen.width} × ${screen.height}`); // 如:1920 × 1080
区分“可用屏幕”与“完整屏幕”
有些系统(如 Windows)会将任务栏、Dock 或菜单栏占用的空间排除在外,这时可使用:
- screen.availWidth —— 可用的水平像素(不含系统UI)
- screen.availHeight —— 可用的垂直像素
通常 availWidth/Height 比 width/height 小几十像素,尤其在桌面端更明显。
注意缩放与设备像素比的影响
window.screen 返回的是 CSS 像素(逻辑像素),不是物理像素。高 DPI 设备(如 MacBook Retina、Windows 缩放 125%)下,实际物理分辨率更高。
- 要估算物理像素,可结合 window.devicePixelRatio(如值为 2,表示 1 CSS 像素 = 2×2 物理像素)
- 但
screen.width/height本身已按缩放比例换算过,直接使用即可,无需手动除以 devicePixelRatio
常见误用提醒
- 不要用
screen.width判断网页是否在移动端——它可能返回 1920 即使用户用手机横屏访问(部分安卓浏览器会报告桌面级分辨率) - 响应式布局应优先使用 viewport 宽度(
document.documentElement.clientWidth)或 CSS 媒体查询,而非 screen 尺寸 - 隐私策略下,部分浏览器(如 Safari 在某些模式)可能对 screen 属性返回模糊值(如四舍五入到最近的百位),以防止指纹追踪
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










