首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >只将超文本标记语言提供给IE6

只将超文本标记语言提供给IE6
EN

Stack Overflow用户
提问于 2009-09-17 09:31:36
回答 9查看 556关注 0票数 0

如果浏览器是IE6/IE7,我需要显示不同的HTML。我知道,如果我们只是讨论样式信息,那么条件注释可以很好地工作,但在这种情况下,它是实际的标记。

我会有一个无序的图像列表,这将是png-24。它们将具有圆角(因此需要png-24提供的透明度),并且将在CSS(3)中具有圆角边框样式。随着IE6不能识别png-24的,我想有一个图像的替代列表,这是jpg的,其中已经有边界包括在图像中。这将使IE6/IE7满意,同时兼容标准的浏览器将获得正确的版本。

(我之所以这样做,是因为网站可能会增长到许多图像,并且需要轻松地进行主题设置。如果我在代码中生成边框,只需对边框颜色进行简单的更改,它就会改变整个站点。我意识到IE仍然必须是手动的,但如果他们真的希望IE6支持它,我可以为此创建一个单独的费用。)

所以我的问题是,使用PHP做这件事最好的方法是什么,有什么缺点吗?

EN

回答 9

Stack Overflow用户

发布于 2009-09-17 09:36:53

你可以在PHP中检测到它并发送不同的HTML:

代码语言:javascript
复制
$using_ie6 = ((strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE 6.') !== FALSE) || (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE 6,0') !== FALSE));
if ($using_ie6) {
    ...
}
else {
    ...
}

这种方法的缺点是Opera有时会在它的用户代理报头中发送MSIE 6,这也可能与IE mobile相匹配。

将不同的内容发送到不同的浏览器通常是一件很好的事情,尽量避免--你最终会得到大量重复的代码,以及由此带来的所有固有的邪恶。

票数 5
EN

Stack Overflow用户

发布于 2009-09-17 09:54:05

使用条件注释-它们可以很好地处理标记,而不仅仅是样式信息:

代码语言:javascript
复制
<!--[if lte IE 6]>
<p>Old school</p>
<![endif]-->

请参阅MSDN:About Conditional Comments

票数 4
EN

Stack Overflow用户

发布于 2009-09-17 09:37:23

代码语言:javascript
复制
$is_ie6 = (isset($_SERVER['HTTP_USER_AGENT']) && (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE 6') !== false));
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1437723

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档