代码之家  ›  专栏  ›  技术社区  ›  Alex Wayne

不可缩放的网络视图,可在iPhone和iPhone4分辨率下工作

  •  3
  • Alex Wayne  · 技术社区  · 14 年前

    我想有一个webview,它有一个HTML和一个CSS文件,以相同的大小显示图形,但每个都有本机分辨率。

    我现有的为320x480设计的网络视图似乎可以很好地扩展(比如清晰的文本和边框半径),尽管iPhone4模拟器中的图像分辨率只有一半。如何模拟本机图像加载行为,其中使用HTML、CSS或JS自动选择图形或其双分辨率版本(希望不是JS)

    <meta content='initial-scale=0.5; maximum-scale=1.0; minimum-scale=0.5; user-scalable=0;' name='viewport' /> 
    

    这会缩小,图像像素与显示像素的比例为1:1,但也会缩小比例 否则。当然,在更小的iPhone显示屏上也会显得很小。

    我有一种感觉,这与某种视口大小的媒体查询有关?

    4 回复  |  直到 14 年前
        1
  •  2
  •   Kolin Krewinkel    14 年前

    这将为iPhone4加载一个特定的样式表:

    <link
        rel="stylesheet" type="text/css" href="/css/style.css" media="only screen and (-webkit-min-device-pixel-ratio: 2)"
    />
    
        2
  •  1
  •   Alex Wayne    14 年前

    http://aralbalkan.com/3331

    这将加载iphone4样式表

    <link
        rel="stylesheet"
        type="text/css"
        href="/css/retina.css"
        media="only screen and (-webkit-min-device-pixel-ratio: 2)"
    />
    

    然后在低分辨率样式表中,神奇的做法是将background size属性设置为低分辨率图像的大小。

    .demoImage
    {
        background-image: url(../images/my-image-64.png);
        background-size: 64px 64px;
        background-repeat: no-repeat;
    }
    

    retina.css 只需显示双分辨率版本

    .demoImage
    {
        background-image: url(../images/my-image-128.png);
    }
    

    现在css背景图像将显示一个128x128的图像,就好像它是64个css像素,提供了一个1:1的图像像素来显示iphone4上的像素图像。

        3
  •  0
  •   Peter Fortuin    14 年前

    我也有同样的问题。我还没有时间去研究它,但我的想法是创建每英寸像素更高的图形,并将其用于iphone3g和iphone4。

    我不确定这是否行得通。但值得一试。

        4
  •  0
  •   Taylor D. Edmiston    14 年前

    CSS media query 应该工作:

    @media only screen and (min-resolution: 300dpi) { ... }
    

    serving high-res images . 这篇文章主要是关于打印样式的,但在这里也同样适用。