jQuery Mobile 根据手机屏幕自动调整网格大小

Posted

技术标签:

【中文标题】jQuery Mobile 根据手机屏幕自动调整网格大小【英文标题】:jQueryMobile resize grid based on mobile screen automaticly 【发布时间】:2013-05-24 14:01:03 【问题描述】:

我在一个 jQueryMobile 网站上工作,这就是我所做的:

<body>
<p class="tekst">De "Snelle" methode, berekent alleen op het lichaamsgewicht, en is alleen nuttig voor mensen met een normaal vetpercentage maar zelfs is deze methode onnauwkeurig.</p>
<div class="ui-grid-c">
    <div class="ui-block-a"><div class="ui-bar ui-bar-e" style="height:65px">Gewicht (kg)<input type="text" name="m1kg" id="m1kg" value=""></div></div>
    <div class="ui-block-b"><div class="ui-bar ui-bar-e" style="height:65px">Afvallen:<input type="text" name="m1cut" id="m1Cut" value=""></div></div>
    <div class="ui-block-c"><div class="ui-bar ui-bar-e" style="height:65px">Onderhoud:<input type="text" name="m1Onderhoud" id="m1Onderhoud" value=""></div></div>
    <div class="ui-block-d"><div class="ui-bar ui-bar-e" style="height:65px">Aankomen:<input type="text" name="m1Bulk" id="m1Bulk" value=""></div></div>
</div><!-- /grid-c -->
<button id="btnmethod1">Bereken</button>


<p class="tekst">De Formule van Harris-Benedict, berekent op lichaamsgewicht,lenge,leeftijd en activiteitsniveau. Een vrij betrouwbare methode om te gebruiken.</p>
</body>

现在,当我在我的手机(Iphone 4)上打开这个网站时,屏幕没有正确调整大小,你必须放大才能阅读那里的内容,例如:

如您所见,在放大之前几乎看不到发生了什么。网格使用 25%/25%/25%/25% 来显示块,但由于某种原因,块/文本框的宽度 ( ?) 太大而无法放入,我想要的是当您打开网站时无法放大并且按钮应该完全适合,有谁知道如何做到这一点?

【问题讨论】:

【参考方案1】:

必须将视口元标记添加到 HEAD 中,以便可以在移动设备上查看 jQuery Mobile 应用程序:

<meta name="viewport" content="width=device-width; initial-scale=1; maximum-scale=1 minimum-scale=1; user-scalable=no"/>

此外,您还需要重新设计页面外观,如果您在移动设备(在我的情况下为三星 Galaxy S3)上正确显示此页面,您的输入框将变得非常短。

你可以在这里测试它:http://www.fajrunt.org/viewport.html,只需在你的 iPhone 上打开它。 如果它太大,你可以修改比例,如果你低于 1,它会看起来更小。例如,您可以尝试 0.75。

您的最终代码应如下所示:

<!DOCTYPE html>
<html>
    <head>
        <title>jQM Complex Demo</title>
        <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
        <meta name="viewport" content="width=device-width; initial-scale=1; maximum-scale=1 minimum-scale=1; user-scalable=no"/>
        <link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.1/jquery.mobile-1.3.1.min.css" />
        <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
        <script src="http://code.jquery.com/mobile/1.3.1/jquery.mobile-1.3.1.min.js"></script>    
    </head>
    <body>
        <div data-role="page" id="index">
            <div data-theme="b" data-role="header">
                <h1>Index page</h1>
            </div>

            <div data-role="content">
                <p class="tekst">De "Snelle" methode, berekent alleen op het lichaamsgewicht, en is alleen nuttig voor mensen met een normaal vetpercentage maar zelfs is deze methode onnauwkeurig.</p>
                <div class="ui-grid-c">
                    <div class="ui-block-a">
                        <div class="ui-bar ui-bar-e" style="height:65px">Gewicht (kg)<input type="text" name="m1kg" id="m1kg" value=""/>
                        </div>
                    </div>
                    <div class="ui-block-b">
                        <div class="ui-bar ui-bar-e" style="height:65px">Afvallen:<input type="text" name="m1cut" id="m1Cut" value=""/>
                        </div>
                    </div>
                    <div class="ui-block-c"><div class="ui-bar ui-bar-e" style="height:65px">Onderhoud:<input type="text" name="m1Onderhoud" id="m1Onderhoud" value=""/>
                        </div>
                    </div>
                    <div class="ui-block-d">
                        <div class="ui-bar ui-bar-e" style="height:65px">Aankomen:<input type="text" name="m1Bulk" id="m1Bulk" value=""/></div>
                    </div>
                </div><!-- /grid-c -->
                <button id="btnmethod1">Bereken</button>


                <p class="tekst">De Formule van Harris-Benedict, berekent op lichaamsgewicht,lenge,leeftijd en activiteitsniveau. Een vrij betrouwbare methode om te gebruiken.</p>
            </div>
        </div>    
    </body>
</html>   

【讨论】:

以上是关于jQuery Mobile 根据手机屏幕自动调整网格大小的主要内容,如果未能解决你的问题,请参考以下文章

使用 jquery mobile 调整图像大小以适应移动设备上的屏幕

rem(根据判断手机屏幕大小自动调整rem值的js代码)

C#窗体根据分辨率自动调整大小?

手机网页用Bootstrap还是jQuery Mobile

ItemsControl - 网格子元素自动调整大小

想用jQuery mobile js 做网页的自适应大小宽度的改变,就是当网页宽度变小时页面还是显示的原来所有内容