- objective-c - iOS 5 : Can you override UIAppearance customisations in specific classes?
- iphone - 如何将 CGFontRef 转换为 UIFont?
- ios - 以编程方式关闭标记的信息窗口 google maps iOS
- ios - Xcode 5 - 尝试验证存档时出现 "No application records were found"
在我的网站上,IE7 似乎忽略了某些 CSS 属性选择器。奇怪的是,它只发生在页面来自生产服务器时。如果我的个人服务器上有完全相同的代码,或者保存在我的硬盘上,它就可以正常工作。这是导致问题的示例:
<!DOCTYPE HTML>
<html><head>
<title>IE display test</title>
<style type="text/css">
[type=button] {
display: block;
}
</style>
</head>
<body>
<input type="button" value="Button 1"/>
<input type="button" value="Button 2"/>
<input type="button" value="Button 3"/>
</body></html>
由于按钮上的显示设置为“ block 状”,因此它们应该垂直排列。但只有当页面由我的生产服务器提供时,它们才会水平排列。当我使用开发人员工具栏检查样式时,我没有像往常那样看到“显示”属性。我能想到的唯一可能导致此问题的是页面的 URL 或来自服务器的响应 header 。我也许可以通过实验弄清楚,但这既不方便又费时,所以在我这样做之前,我想问:为什么会发生这种情况,可以采取什么措施?
编辑:我想出了一个 Fiddle .在那个网站上看起来不错。
编辑 2: 以下是来自生产服务器的响应 header :
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Type: text/html;charset=utf-8
Content-Language: en-US
Content-Length: 291
Date: Wed, 18 Jan 2012 21:32:48 GMT
编辑 3: 以下是来 self 的个人服务器的响应 header :
HTTP/1.1 200 OK
Date: Wed, 18 Jan 2012 21:37:30 GMT
Server: Apache
Vary: Accept-Encoding
Content-Encoding: gzip
Content-Length: 176
Keep-Alive: timeout=2, max=100
Connection: Keep-Alive
Content-Type: text/html;charset=utf-8
生产服务器没有应用 gzip 压缩,因为它只对超过一定大小的文件执行此操作。如果我添加一些东西使文件足够大,它使用 gzip,我仍然在 IE7 中看到问题,所以这似乎与 gzip 没有任何关系。
我尝试将我的个人服务器配置为像生产服务器一样发送“Content-Language” header ,但没有触发问题。
我不知道其他标题是否与此有关。我可以尝试测试它们,但这会有点棘手,所以可能需要一些时间。
编辑 4: 我在 IE8 中没有注意到这个问题,即使我打开了兼容模式。我正在 Windows XP 上对此进行测试,以防万一。
编辑 5: 我将字符集放在我个人服务器的 Content-Type header 中。它没有触发问题。
编辑 6: 以下是一些屏幕截图:从生产服务器提供:
由我的个人服务器提供:
直接从我的硬盘加载:
编辑 7: 我终于知道是什么原因造成的!我尝试在地址栏中输入 javascript:alert(document.compatMode)
。个人和直接页面显示 CSS1Compat
,但生产页面显示 BackCompat
。 似乎浏览器仅在从生产服务器呈现页面时才处于怪异模式。到目前为止,我不知道为什么会发生这种情况或如何处理。
编辑 8: 我遗漏了一个细节:屏幕截图实际上来 self 的开发环境,它模拟生产服务器但在我自己的计算机上运行。这将使 BoltClock 的回复看起来合理,除了同样的问题出现在我们实际的生产服务器上,该服务器的 IP 地址匹配 173...*。为什么我会在该服务器上看到问题?那也是私有(private)IP地址吗?了解实际生产服务器使用 https 可能会有所帮助。
编辑 9:自赏金过期以来,问题不再出现在生产服务器上,但它仍然出现在我的开发环境 (10.1.10.34) 中。我不知道为什么。我想我会把它归咎于宇宙射线,除非我能拿出更多证据。
最佳答案
正如评论中所讨论的,根据 this answer by thirtydot和 this answer by scunliffe ,这似乎很可能是 Internet Explorer 中安全功能的影响。您的生产服务器位于您的 Intranet 中,并通过私有(private)的 A 类 IPv4 地址(10.*.*.*
)访问,我怀疑这基本上会导致 IE7 以怪癖模式呈现页面( and IE8 and newer to render pages in Compatibility View ).
不过,这只是一个猜测,恐怕 — 我无法在任何系统上的任何 IE 浏览器中重现您的问题,至少不能在您的个人服务器上或使用我自己的文件重现。如果您的生产服务器对公共(public)访问开放,而不仅仅是技术上的开放,也许您可以提供指向它的链接,以便我们可以进一步调试,因为问题显然局限于仅您的生产服务器。
关于html - IE7 仅在来自生产服务器的页面上忽略 CSS 属性选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8915855/
你能比较一下属性吗 我想禁用文本框“txtName”。有两种方式 使用javascript,txtName.disabled = true 使用 ASP.NET, 哪种方法更好,为什么? 最佳答案 我
Count 属性 返回一个集合或 Dictionary 对象包含的项目数。只读。 object.Count object 可以是“应用于”列表中列出的任何集合或对
CompareMode 属性 设置并返回在 Dictionary 对象中比较字符串关键字的比较模式。 object.CompareMode[ = compare] 参数
Column 属性 只读属性,返回 TextStream 文件中当前字符位置的列号。 object.Column object 通常是 TextStream 对象的名称。
AvailableSpace 属性 返回指定的驱动器或网络共享对于用户的可用空间大小。 object.AvailableSpace object 应为 Drive 
Attributes 属性 设置或返回文件或文件夹的属性。可读写或只读(与属性有关)。 object.Attributes [= newattributes] 参数 object
AtEndOfStream 属性 如果文件指针位于 TextStream 文件末,则返回 True;否则如果不为只读则返回 False。 object.A
AtEndOfLine 属性 TextStream 文件中,如果文件指针指向行末标记,就返回 True;否则如果不是只读则返回 False。 object.AtEn
RootFolder 属性 返回一个 Folder 对象,表示指定驱动器的根文件夹。只读。 object.RootFolder object 应为 Dr
Path 属性 返回指定文件、文件夹或驱动器的路径。 object.Path object 应为 File、Folder 或 Drive 对象的名称。 说明 对于驱动器,路径不包含根目录。
ParentFolder 属性 返回指定文件或文件夹的父文件夹。只读。 object.ParentFolder object 应为 File 或 Folder 对象的名称。 说明 以下代码
Name 属性 设置或返回指定的文件或文件夹的名称。可读写。 object.Name [= newname] 参数 object 必选项。应为 File 或&
Line 属性 只读属性,返回 TextStream 文件中的当前行号。 object.Line object 通常是 TextStream 对象的名称。 说明 文件刚
Key 属性 在 Dictionary 对象中设置 key。 object.Key(key) = newkey 参数 object 必选项。通常是 Dictionary 
Item 属性 设置或返回 Dictionary 对象中指定的 key 对应的 item,或返回集合中基于指定的 key 的&
IsRootFolder 属性 如果指定的文件夹是根文件夹,返回 True;否则返回 False。 object.IsRootFolder object 应为&n
IsReady 属性 如果指定的驱动器就绪,返回 True;否则返回 False。 object.IsReady object 应为 Drive&nbs
FreeSpace 属性 返回指定的驱动器或网络共享对于用户的可用空间大小。只读。 object.FreeSpace object 应为 Drive 对象的名称。
FileSystem 属性 返回指定的驱动器使用的文件系统的类型。 object.FileSystem object 应为 Drive 对象的名称。 说明 可
Files 属性 返回由指定文件夹中所有 File 对象(包括隐藏文件和系统文件)组成的 Files 集合。 object.Files object&n
我是一名优秀的程序员,十分优秀!