如何使用HTML中的JavaScript动态设置屏幕分辨率?

时间:2010-10-02 05:32:43

标签: mobile

我正在为移动设备开发一个网络应用程序。 iPod,所以平台独立。为此,我使用html作为嵌入在adv.java servlet中的前端。

但是,屏幕分辨率存在很大问题。如何为任何Web浏览器动态设置屏幕分辨率?

理想情况下我不想要水平滚动条;那么什么方法可能在这里起作用?

4 个答案:

答案 0 :(得分:5)

使用css3媒体查询改变您的页面设计:

http://www.webdesignerwall.com/tutorials/css3-media-queries/

  

适用于iPhone 4

     

以下样式表是   专为iPhone 4而设(学分:   Thomas Maier)。

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

适用于iPad

     

您还可以使用媒体查询进行检测   方向(肖像或景观)   在iPad上(学分:Cloud Four)。

<link rel="stylesheet" media="all and (orientation:portrait)" href="portrait.css">
<link rel="stylesheet" media="all and (orientation:landscape)" href="landscape.css">

答案 1 :(得分:4)

使用JavaScript无法真正改变手机上的浏览器尺寸。

您需要根据客户端使用不同的CSS规则。您可以通过嗅探User-Agent HTTP标头并从后端提供特定的CSS文件或使用CSS3媒体查询来实现此目的。

答案 2 :(得分:3)

你将不得不做一些研究,但在下面我已经概述了你可以做些什么来实现你想要的东西(我想?)

如Ates所述,您可以使用条件CSS样式表,例如:

<!--[if IE]>
        <link rel="stylesheet" type="text/css" href="../style/ie.css" media="all" />
<![endif]-->

该样式表只能由Inernet资源管理器浏览器“运行”,它对修复程序很有用。但是,您可能需要再次研究这些浏览器在不同类型的浏览器中的行为,尤其是移动平台上的新浏览器。

您有时可以将其进一步扩展到特定版本,例如:

<!--[if IE 7]>
        <link rel="stylesheet" type="text/css" href="../style/ie7.css" media="all">
<![endif]-->

或者,正如Ates所提到的,您的服务器可以检测到User agent字符串(99.99%的时间这是诚实的,有些用户会出于安全/偏执/欺骗的原因修改/清除这些字符串)所以他们不是福音,而是和福音一样好。

以下是如何使用Java servlet请求各种变量:

String accept = request.getHeader("accept");
String user_agent = request.getHeader("user-agent");
String accept_charset = request.getHeader("accept-charset");
String accept_language = request.getHeader("accept-language");
String x_wap_profile = request.getHeader("x-wap-profile");
String profile = request.getHeader("profile");

你所追求的那个可能是user-agent这应该包含浏览器信息和版本。同样,您将不得不进行测试以确定您需要处理哪种类型的字符串,据我所知,没有标准的“实时”用户代理字符串的完整列表。

以下是用户代理字符串的一些示例:

  

您的用户代理是:Mozilla / 5.0   (Windows; U; Windows NT 5.1; en-GB;   rv:1.9.2.12)Gecko / 20101026   Firefox / 3.6.12(.NET CLR 3.5.30729)

http://user-agents.my-addr.com/user_agent_request/user_agent_examples-and-user_agent_types.php

如果您也基于此编写代码,它将会遇到与新版本相关的问题,并且可能会非常快速地过时。

另一个解决方案是在页面上提供iframe,您可以根据需要设置属性/样式,有或没有水平/垂直滚动条,您可以设置它的确切大小,以及许多其他内容。以下是iframe的属性:

SRC=URI (URI of frame content)
NAME=CDATA (name of frame)
LONGDESC=URI (link to long description)
WIDTH=Length (frame width)
HEIGHT=Length (frame height)
ALIGN=[ top | middle | bottom | left | right ] (frame alignment)
FRAMEBORDER=[ 1 | 0 ] (frame border)
MARGINWIDTH=Pixels (margin width)
MARGINHEIGHT=Pixels (margin height)
SCROLLING=[ yes | no | auto ] (ability to scroll)

因此,使用iframe将特定样式表的提供与不同平台相结合可能会产生您所追求的结果。

我还建议你开始阅读和learning about CSS,因为它会对你有很大帮助。

答案 3 :(得分:1)

此外,在所有CSS中,请记住使用相对大小。即%和em而不是像素和点。(适用于文本,边距,填充,适用时)