2

这听起来像是一个愚蠢的问题(对我来说),但我已经搜索过了,我找不到任何似乎在谈论它的地方。代理集的媒体类型在哪里 - 它是由浏览器(或其他)硬编码的还是可配置的(特别是 IE)?

我问是因为我正在编写一个主要由普通 PC 使用的网络应用程序,但也会有一些上网本使用它。然而,这些上网本将运行 XP,并且似乎被检测为普通的 Windows 浏览器,但是对于某些页面,我希望它们使用不同的 CSS(主要用于较大的字体类型),所以我希望将它们设置为手持式设备,然后在我的 CSS 上点击相应页面(拥有它们的用户也将从普通 PC 登录,因此无法选择按用户检测类型)。

或者有更好/更正确的方法吗?

4

5 回答 5

1

最简单的方法是使用 Javascript:screen.widthscreen.height. 如果它太小,请采取适当的措施,例如改用您的移动样式表。没有办法检测一个人正在使用的确切设备。

于 2009-08-04T12:36:01.747 回答
0

通常,基于用户代理的页面服务由 Web 应用程序 Web 服务器处理,或者很少由一些 javascript 处理。如果您列出您正在使用的语言/框架,可以提供更多帮助。

更改客户端上的用户代理屏幕通常不是一个好主意。将您的 css 设计为可扩展并允许缩放。

于 2009-08-04T12:11:09.033 回答
0

HTTP Header 的“用户代理”是浏览器如何“告诉”Web 服务器它是什么类型的浏览器。它也可以包含操作系统和版本。在大多数通常情况下,这些值是正确的指示。我们可以利用这些信息在服务器端生成适合浏览器(即移动设备、IE6 等)的 html/css。

一些框架,例如 ASP.NET 具有某种形式的浏览器功能特性来“适应”html 输出(虽然我不相信)。

我想不出更好的方法来做其他事情。对于屏幕大小检测,javascript 检测应该可以很好地工作,但是除非您有某种可以以 AJAX 方式呈现输出的实现形式,否则在布局和字体大小方面并没有给您太多帮助。可能相当复杂。

这里没有太多的答案,只是希望它可以促进更多的想法。

于 2009-08-04T13:24:18.667 回答
0

我在 ASP.NET 中工作,使 CSS 可缩放不是一种选择 - 大多数屏幕都可以按原样进行,但是对于一个屏幕,上网本上的布局需要不同,所以在这种情况下用户必须放大一个页面,然后再放大其他页面,显然,这不是一个好的解决方案(加上实际的 CSS 会有所不同,而不仅仅是缩放级别 - 只有某些元素的字体会是例如放大)。问题是客户端将被视为“普通”Windows 客户端 - Mozilla/4.0(兼容;MSIE 8.0;Windows NT 5.1;Trident/4.0;.NET CLR 1.1.4322;.NET CLR 2.0.50727;.NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; OfficeLiveConnector.1.4; OfficeLivePatch.1.3)(如果有人想知道,三叉戟部分只是 IE8 说如果它是 IE8' s 伪装成 IE7) 所以我需要改变客户展示自己的方式。最简单(理论上)的方法是将它们配置为不同的媒体类型,这样它们将自动加载正确的 CSS 而无需服务器端操作,但它只是知道如何执行此操作。

同样,理论上,如果这是不可能的,我会感到非常惊讶,或者除非您有可用的实际设备并且手头,否则它将使正确测试不同的媒体类型成为一场噩梦,但在网上看起来似乎是这种情况(肯定有人会在某处的浏览器中放置一个选项,您可以在其中设置它支持的媒体类型????)。

于 2009-08-04T15:46:21.297 回答
0

有点旧,但您可以使用 css 媒体类型

http://www.w3schools.com/css/css_mediatypes.asp

于 2013-11-13T00:29:13.130 回答