2011-02-23 76 views
4

所以大部分时间我的样式表都显示正确。标准/原来总是完美的作品,但它似乎有时当从移动设备看移动一个被忽略用于移动设备的CSS有时会恢复为原始

我把它们命名如下:

<link href="CustomStyleSheets/standard.css" rel="stylesheet" type="text/css" /> 
<link href="CustomStyleSheets/mobile.css" rel="stylesheet" type="text/css" media="only screen and (max-device-width: 799px)" /> 

我使用的是Droid X的要以纵向模式查看页面,所以设备宽度不应超过上面指定的最大宽度,但有时,它会随机地返回到原始的css页面。

有没有办法阻止它这样做?

+0

可以在Android浏览器中的错误,这也发生在iPhone或歌剧对于android – nLL 2011-02-23 16:31:09

+0

如果我没有记错,它也发生在iPhone上,但是我们今天早上在我们的Mac中遇到了一些问题,所以我还没有能够在模拟器上对它进行测试...并且我的部门中没有人拥有一个iphone。 – 2011-02-23 16:55:49

+0

在使用'max-width:799px'时会发生同样的情况吗? – Hannes 2011-02-25 15:54:34

回答

-1

也许使用media =“screen”for standard.css?也许这有助于(:

或检查服务器端用户代理如果是移动设备只加载移动CSS否则负载standard.css

我使用WURFL来看看它是移动设备..。 。

0

我已经看到之前发生,我相信这是这是得到改变body元素的尺寸正确的doctype是非常重要的它应该是:。

<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd"> 
+0

实际上,对于某些设备(如Blackberry)来说,完全有效的WAP文档类型在iPhone/Android上不需要,它可以很好地与HTML5文档类型一起使用,例如:<!DOCTYPE html> – 2011-02-26 19:05:57

0

尝试使用的介质类型“手持”

<link href="CustomStyleSheets/standard.css" rel="stylesheet" type="text/css" /> 
<link href="CustomStyleSheets/mobile.css" rel="stylesheet" type="text/css" media="handheld" /> 
+1

注意:iPhone会不支持媒体类型的手持设备,所以这至少在iPhone中不会达到预期的效果。更多信息在这里:http://stackoverflow.com/questions/3893342/do-iphone-android-browsers-support-css-media-handheld – 2011-02-26 19:08:06

+0

@Jim - 你是对的。如果有的话,大多数新型触摸屏设备都不能很好地支持手持设备。 – 2011-02-28 15:26:19

2

确保您的standard.css不会影响您期望通过mobile.css看到的级联。它看起来好像移动设备会首先加载你的standard.css,然后加载mobile.css--所以样式表中的样式都会影响显示。我通常将我的样式表链接元素封装在逻辑中,只将移动样式表显示到移动设备 - 不是同时显示两个样式表。

另外,不要忘了包括这meta标签,以确保您的网页是否被正确缩放到设备尺寸:

<meta name="viewport" content="width=device-width" /> 
+0

_I通常将我的样式表链接元素封装在只显示移动设备的逻辑中,而不是同时显示两个样式表._ < - 请详细说明。你如何用逻辑包装它们?你使用JavaScript或其他? – 2011-02-28 15:40:56

+0

我想他是说为你的第一个CSS导入添加一个条件,以便它不会被加载。对于媒体性质=“全部(最小宽度:800)”可能帮助浏览器避免加载与“移动版本”一起的CSS冲突桌面版本。 – N0Alias 2011-02-28 19:04:41