正确查询屏幕宽度和设备分辨率

用户名

也许有人可以为我阐明一些东西。

我基本上是试图从如何正确​​设置查询以及甚至通过JavaScript检测和加载资源的角度来理解此设备尺寸列表。http://mobile.smashingmagazine.com/2013/03/21/sensitive-web-design-with-physical-units/

最让我失望的是具有很高PPI的设备,例如视网膜Iphone和ipad。

例如,第一代和第二代iPad的纵向分辨率为768 x 1024。新的iPad Mini也是如此。因此,假设查询仅使用min-width-768,即使Mini较小,它也会为每个设备加载完全相同的CSS,对吧?

iPad 3的纵向为1536 x2048。因此,仅使用最小宽度查询,此设备基本上就可以在大型浏览器中使用吗?元视口标签中的比例因子是否起作用?查询是否还需要考虑像素长宽比,才能正确为高分辨率设备提供样式?

有人能很好地解决设备分辨率问题吗?

克里斯蒂娜(Christina)

您的问题经过深思熟虑。

这些天,设备报告的设备像素宽度不准确。像素不再意味着像素,例如iPad mini比实际的iPad小40%,但其宽度却是普通尺寸的iPad。再加上视网膜设备为2兆像素。使用基于px的媒体查询将导致这些设备上非常非常小的设计。

为了避免这种情况,我要做的是使用基于em的媒体查询。然后仅在容器(或ems)上使用百分比。媒体查询上的EMS基于16px。您可以在字体大小上使用像素,也可以在px后备时使用REM(如果需要支持8)。Respond.js(用于ie8)支持ems。

至于何时为不同设备启用JS,您的宽度应明确基于ems(默认为px)。我个人尝试对所有大小使用相同的脚本,或者我使用php类和服务器端的东西专门为手机而不是台式机等加载,或者我检测到触摸和非触摸(请参见下文)。

我已经获取了Bootstrap 3 LESS文件,更改了变量以使网格对装订线使用百分比,并且所有媒体均为em。所有字体均为具有px后备格式的REMS。html基本字体大小已更改为100%。该框架开箱即用,可移动且灵活(除了我在变量中更改的巨大装订线)。它具有版式问题,很容易纠正。我还删除了所有.container类,只使用了一个样式为max-width和min-width且不超过屏幕90%的.container。

这些是基于Bootstrap的变量,但实际上,当您在所有容器上使用百分比,并在媒体查询,流畅的设计技术和移动优先CSS上使用em时,就可以涵盖整个设备。

这些是我定位的ems,在所有设备上都具有出色的效果,因为它是视口而不是像素:

// Extra small screen / phone
@screen-xs-min: 480px;
@screen-xs-min: 30.000em;

// Small screen / tablet
@screen-sm-min: 768px;
@screen-sm-min: 48.000em;

// Medium screen / desktop   
@screen-md-min: 992px;
@screen-md-min: 62.000em;

// Large screen / wide desktop
@screen-lg-min: 1200px;
@screen-lg-min: 75.000em;

// So media queries don't overlap when required, provide a maximum
@screen-xs-max: (47.938em);
@screen-sm-max: (61.938em);
@screen-md-max: (74.938em);

检测功能而不是设备

我使用一个小的脚本来检测触摸和非触摸,并以这种方式加载或不加载脚本:

 /* __________________ Supports Touch __________________*/
 /* Detects touch support and adds appropriate classes to html and returns a JS object
 *  Copyright (c) 2013 Izilla Partners Pty Ltd
 *  http://www.izilla.com.au
 *  Licensed under the MIT license
 *  https://coderwall.com/p/egbgdw
 */
var html = document.documentElement,
   supportsTouch = 'ontouchstart' in window || navigator.msMaxTouchPoints;

if (supportsTouch)
   html.className += ' touch';
else
   html.className += ' no-touch';
}

 if( $("html").hasClass("no-touch") ) { 

  $(document).ready(function () {
    $('a[href^=tel]').css('pointer-events', 'none');
  });

 } // end turn off pointer events

我以相同的方式使用Modernizer,如果浏览器支持某些功能或不支持功能,我将使用它来加载脚本或不加载它们以及为CSS创建后备。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

分辨率和屏幕检测不正确

来自分类Dev

CSS:查询屏幕分辨率和密度的最佳方法?

来自分类Dev

正确分辨率下的屏幕模糊

来自分类Dev

VirtualBox,Ubuntu和屏幕分辨率

来自分类Dev

屏幕和分辨率问题

来自分类Dev

如何在Windows Phone 8.1中获取屏幕分辨率(宽度和高度)?

来自分类Dev

如何基于屏幕分辨率javafx在fxml中动态设置首选宽度和高度

来自分类Dev

如何在Windows Phone 8.1中获取屏幕分辨率(宽度和高度)?

来自分类Dev

我想要特定宽度的CSS屏幕分辨率吗?

来自分类Dev

我想要特定宽度的CSS屏幕分辨率吗?

来自分类Dev

宽度未在更高的屏幕分辨率上对齐

来自分类Dev

如何使用LIBGDX获取Android设备的屏幕分辨率?

来自分类Dev

设备屏幕分辨率如何在CSS中缩放?

来自分类Dev

Qt Android。获取设备屏幕分辨率

来自分类Dev

Unity 4.3-了解位置和屏幕分辨率,如何正确设置对象的位置?

来自分类Dev

移动Safari和Android Chrome无法返回正确的屏幕分辨率

来自分类Dev

如何在引导加载程序和屏幕登录时设置正确的分辨率

来自分类Dev

根据设计分辨率生成当前屏幕分辨率的正确坐标

来自分类Dev

monogame屏幕分辨率不正确

来自分类Dev

屏幕分辨率设置不正确

来自分类Dev

屏幕分辨率无法正确显示网格

来自分类Dev

如何同步屏幕分辨率和信号分辨率

来自分类Dev

屏幕分辨率检测

来自分类Dev

Android 所有分辨率的通用高度和宽度

来自分类Dev

不同屏幕尺寸和分辨率的图像尺寸

来自分类Dev

AdMob和不同的屏幕分辨率/ DPI /比率

来自分类Dev

更改的显示器和屏幕分辨率变低

来自分类Dev

iOS CGContextAddArc和不同的屏幕分辨率

来自分类Dev

没有声音和屏幕分辨率

Related 相关文章

热门标签

归档