【问题标题】:CSS media queries, pixel density, desktop and mobile devicesCSS 媒体查询、像素密度、桌面和移动设备
【发布时间】:2013-11-24 20:03:57
【问题描述】:

情况:
我有 5 个 CSS 文件:

  • base.css 包含一些适用于任何地方的样式

  • 339px.css,宽度不超过 339px

  • 639px.css,宽度最大为 639px

  • 999px.css 和

  • 大于 999 像素宽度的任何东西都使用 bigscreen.css

代码:

<link rel="stylesheet" type="text/css" media="all" type="text/css" href="css/base.css" />
<link rel="stylesheet" type="text/css" media="screen and (min-width:    0px) and (max-width: 339px)" href="css/339px.css" />
<link rel="stylesheet" type="text/css" media="screen and (min-width:  340px) and (max-width: 639px)" href="css/639px.css" />
<link rel="stylesheet" type="text/css" media="screen and (min-width:  640px) and (max-width: 999px)" href="css/999px.css" />
<link rel="stylesheet" type="text/css" media="screen and (min-width: 1000px)" href="css/bigscreen.css" />

这一切都很好,并且在设备屏幕上 1 个 css 像素等于 1/96 英寸(2.54 厘米)的任何设备上都能完美运行。然而,最近,许多显示设备的像素密度远高于此,因此当 339px.css 更合适时,它们会应用 639px.css。这是个问题,因为内容看起来方式太小了。

另外请注意,我不能使用 JavaScript,桌面计算机应该总是根据宽度获取相应的 css 文件,无论方向如何。

我想要实现的目标:

  • 339px.css 适用于任何设备:
    • 宽度
    • 高分辨率但小屏幕(例如我的 1280x720 但屏幕为 5.7 英寸的 Android 智能手机)并且是纵向的。

基本上,我想要一个与设备像素密度相关的单位(台式机、平板电脑、智能手机、4k 显示器、“Retina”显示器,你懂的)并且适用于所有主要的像素密度而不是 css 像素移动和桌面平台上的浏览器。

同时,我还需要为旧版浏览器回退到 css 像素。

实现这一点让我非常头疼。据我了解,您可以使用device-pixel-ratio,但我没有成功地不使css文件在某个点“重叠”(两个css文件处于活动状态的区域,例如339px.css和639px.css )。

我束手无策。我尝试了min-widthmax-widthdevice-pixel-ratioorientation: portrait/landscape 媒体查询的组合,但由于桌面应该忽略方向而失败。到目前为止,即使我忽略了浏览器支持要求,我也无法跨设备获得积极的结果。

【问题讨论】:

    标签: css responsive-design media-queries


    【解决方案1】:

    将此添加到您的head

    &lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&gt;

    width=device-width 考虑了像素密度,因此真正分辨率为 640 像素宽度和 2.0 像素密度的设备将具有 320 像素的浏览器视口宽度。初始比例确保移动浏览器不会尝试缩放以适应任何内容(对于真正的流畅响应网站)。

    【讨论】:

    • 哈哈没问题 :) 这是我构建的任何响应式网站中最重要的代码行之一!
    • 我是计算机新手,边走边学...我使用了你的代码并修复了平板电脑上的一大堆问题,但手机却全乱了,可能是因为我有this(-webkit-min-device-pixel-ratio: 2 - for the media query) 并且它在单元格中几乎是好的。有什么建议吗?
    • 视情况而定。如果您的网站有一个固定宽度的网格或包装器,应该在较小的视口上缩放以缩放(而不是宽度动态适应任何视口宽度的流体响应网站),则此视口元标记将导致网站被放大较小的浏览器(因为 initial-scale 设置为 1.0)。
    猜你喜欢
    • 2011-12-17
    • 1970-01-01
    • 2022-10-22
    • 1970-01-01
    • 2011-08-09
    • 2012-01-11
    • 2012-05-18
    • 1970-01-01
    • 2017-09-25
    相关资源
    最近更新 更多