用于区分 Google Pixel 1/2 与 Google Pixel XL 与 Google Pixel 2 XL 的媒体查询

Dan*_*Dan 3 android media-queries google-pixel

我正在编写一个cordova应用程序,需要隔离这些谷歌手机来调整样式

鉴于这种:

在此处输入图片说明

我正在努力区分任何 Google Pixel 手机。

@media only screen and (min-width: 411px) and (max-width: 731px) {
    .myDiv{ background-color: blue; }
}
Run Code Online (Sandbox Code Playgroud)

这会在所有像素上触发 - 在模拟器和物理设备中

@media only screen and (min-width: 411px) and (-webkit-device-pixel-ratio: 3) {
    .myDiv{ background-color: blue; }
}
Run Code Online (Sandbox Code Playgroud)

这对于任何像素手机都不会触发 - 如果 3 或 4 像素比率无关紧要

@media screen and (device-width: 411px) and (device-height: 731px) and (orientation: portrait) and (-webkit-device-pixel-ratio: 2.6){
   .myDiv{ background-color: blue;
}
Run Code Online (Sandbox Code Playgroud)

这也不会在任何像素手机上触发

我什至都在努力寻找一个可用于隔离 Google Pixel 2 XL 的媒体查询 - 似乎没有发布任何内容 - 但这款手机已经有一段时间了?

有没有人有这方面的运气?

L1g*_*ira 6

您可以使用 Javascript获取设备的宽度、高度和像素纵横比

输出设备信息功能

function OutputDeviceInformation() {
  let deviceWidth = window.screen.width;
  let deviceHeight = window.screen.height;
  let devicePixelAspectRation = window.devicePixelRatio;

  console.log('Width: ' + deviceWidth);
  console.log('Height: ' + deviceHeight);
  console.log('Pixel Aspect Ratio: ' + devicePixelAspectRatio);
}
Run Code Online (Sandbox Code Playgroud)

谷歌像素 2 XL 输出:

宽度:412px

高度:823px

像素纵横比:3.5

针对 Google Pixel 2 XL 的媒体查询

/* Portrait */
@media screen 
  and (device-width: 412px) 
  and (device-height: 823px) 
  and (-webkit-device-pixel-ratio: 3.5) 
  and (orientation: portrait) {

}

/* Landscape */
@media screen 
  and (device-width: 412px) 
  and (device-height: 823px) 
  and (-webkit-device-pixel-ratio: 3.5) 
  and (orientation: landscape) {

}

/* Target Portrait and Landscape */
@media screen 
  and (device-width: 412px) 
  and (device-height: 823px) 
  and (-webkit-device-pixel-ratio: 3.5) 
  and (orientation: landscape) {

}
Run Code Online (Sandbox Code Playgroud)