2009-08-04 61 views
2

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

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

还是有更好/更正确的方式做到这一点?

+0

对于任何人在看这个问题,看起来像这样无法做到的。 我不想看屏幕大小,因为这意味着我不得不写条件来加载正确的CSS表单,而媒体类型会自动处理。 我已经结束了在用户代理中的条目 – 2009-09-24 13:36:45

回答

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,如果它伪装成IE7),所以我需要改变客户展现自我的方式。最简单的(理论上)这样做的方法是将它们配置为不同的媒体类型,这样它们将自动加载正确的CSS,而不需要服务器端的操作,但它只是知道如何做到这一点。

理论上,如果这是不可能的,我会感到非常惊讶,或者它会使不同的媒体类型成为一场噩梦,除非你有实际的设备可用并且接近手,但是在网上看起来似乎是这样是这样的(当然某人会在浏览器中放置一个选项,在那里你可以设置它支持的媒体类型????)。

0

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

更改客户端上的用户代理屏幕通常不是个好主意。设计你的CSS是可扩展的,并允许缩放。

1

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

0

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

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

我想不出一种更好的方式来做别的。对于屏幕尺寸检测,javascript检测应该可以正常工作,但是除非您有某种可以以AJAX方式呈现输出的实现形式,否则在布局和字体大小方面没有多大帮助。不可能非常复杂。

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

相关问题