在我的网站上,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>
Run Code Online (Sandbox Code Playgroud)
由于按钮上的显示设置为"阻止",因此它们应垂直排列.但只有当我的生产服务器提供页面时,它们才会水平排列.当我使用开发人员工具栏检查样式时,我没有像往常一样看到"显示"属性.我唯一能想到的可能是这会导致页面的URL或来自服务器的响应头.我可以通过实验来弄清楚,但这样做会很不方便和耗时,所以在我这样做之前,我想问:为什么会发生这种情况以及可以做些什么呢?
编辑:我想出了一个小提琴.它在该网站上看起来很好.
编辑2:以下是来自生产服务器的响应标头:
HTTP/1.1 200 OK
服务器:Apache-Coyote/1.1
内容类型:text/html; charset = utf-8
内容 - 语言:en-US
内容长度:291
日期:星期三,2012年1月18日21:32:48 GMT
编辑3:以下是我个人服务器的响应标题:
HTTP/1.1 200 OK
日期:星期三,2012年1月18日21:37:30 GMT
服务器:Apache
变化:接受编码
内容编码:gzip
内容长度:176
保持活动:超时= 2,最大= 100
连接:保持-Alive
Content-Type:text/html; charset = utf-8
生产服务器不应用gzip压缩,因为它只对大于特定大小的文件执行此操作.如果我添加一些东西来使文件足够大,它使用gzip,我仍然在IE7中看到问题,所以这似乎与gzip没有任何关系.
我尝试配置我的个人服务器以发送"内容 - 语言"标题,如生产服务器,并没有触发问题.
我不知道是否有任何其他标题与此有关.我可以尝试测试它们,但它会有点棘手,所以可能需要一些时间. …
html css internet-explorer css-selectors internet-explorer-7
当IE8发布时,以下代码是否可以添加条件样式表?
<!--[if IE 8]>
<link rel="stylesheet" type="text/css" href="ie-8.0.css" />
<![endif]-->
Run Code Online (Sandbox Code Playgroud)
我读过有关这是否适用于测试版的相互矛盾的报告.我希望有人可以分享他们的经验.谢谢.
我们为一个正式将其标准浏览器从IE6升级到IE8(队列庆祝活动)的组织的Web应用程序,我们已经设置了所有的DOCTYPE <!DOCTYPE html>(以及修复了其他HTML代码),我认为在IE8中这将是导致页面在IE8标准模式下呈现.但是,它仍然以IE7标准模式显示.
我已经添加<meta http-equiv="X-UA-Compatible" content="IE=8">到该<head>部分,它仍然无法默认为IE8标准模式.我假设在这个阶段必须有一个强制模式的设置(可能是组策略等).
在MSDN论坛上阅读hack之后,如果你将meta标签放在标签之前<html>,它就会正确地显示为IE8标准模式,这对我有用.还有另一种方法吗?看到那里的元标记看起来很糟糕......
以下是每个页面的组成方式:
<!DOCTYPE html>
<meta http-equiv="X-UA-Compatible" content="IE=8">
<html lang="en">
<head>
<meta charset="utf-8">
<title>Page Title</title>
</head>
<body>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)