如何通过JavaScript/CSS检测智能手机?

How to detect a smartphone through JavaScript/CSS?

我在网络上看到,进行响应式设计的最佳方式是使用 CSS @media 查询。这似乎不是一个实用的解决方案,因为许多手机识别为 screen 并且具有与桌面显示器一样多的像素(即 iPhone 6 Plus 是 1080x1920 并且一些 Android 手机具有更大的尺寸).所以如果我为我的桌面设计说 min-width: 800px;,许多智能手机会使用这些规则。

一种解决方法是在 JavaScript 中使用 navigator.userAgent 来检测移动设备,但我也听说这不是广泛兼容的。

是否有 'best' 方法来确定用户是否使用移动设备(最好使用 JavaScript 或 CSS)?

如果将此代码添加到您的页面 head,视口的宽度将不是实际像素数,而是与 96dpi 像素密度相当的宽度:

<meta name="viewport" content="width=device-width"/>

大多数智能手机的 CSS 宽度为 320 像素,尽管它们的实际分辨率更高。