设置浏览器的媒体类型

时间:2009-08-04 12:07:43

标签: css media media-queries

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

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

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

5 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

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

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

我想不出更好的方法。对于屏幕大小检测,javascript检测应该可以正常工作,但这在布局和字体大小方面不会给你太多,除非你有某种形式的实现可以以AJAX方式呈现输出。可能相当复杂。

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

答案 3 :(得分: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) (如果有人想知道,Trident部分只是IE8,如果它伪装成IE7就是IE8)所以我需要改变客户端呈现的方式。最简单的(理论上)方法是将它们配置为不同的媒体类型,这样它们就会自动加载正确的CSS而不需要服务器端操作,但它只是知道如何执行此操作。

再一次,从理论上讲,如果不可能,我会感到非常惊讶,或者它会使得正确测试不同媒体类型成为一场噩梦,除非你有可用的实际设备,但在网上看似乎这是这个案例(当然某人会在某个地方的浏览器中添加一个选项,你可以设置它支持的媒体类型????)。

答案 4 :(得分:0)

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

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

相关问题