提问人:tomexx 提问时间:12/8/2011 最后编辑:tomexx 更新时间:5/2/2017 访问量:181
如何将某些内容显示到 <=IE6 并与其他浏览器不同?
How to show certain content to <=IE6 and different one to other browsers?
问:
如何将某些内容显示到 IE6 + 早期版本,并将其他版本与其他版本不同?有条件的评论可以吗?
谢谢
更新
我只能编辑 <body> 标签中的内容...
答:
您可以使用条件注释来仅包含特定浏览器的内容
更多信息请访问:
http://www.quirksmode.org/css/condcom.html
使用 CSS hacks。请参阅以下链接
http://www.webdevout.net/css-hacks
http://paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/
Paul Irish 博客上描述了一个更好的选择。(链接在这里)
基本思想是像这样给你的标签赋类。html
<!--[if lt IE 7 ]> <html class="ie6"> <![endif]-->
<!--[if IE 7 ]> <html class="ie7"> <![endif]-->
<!--[if IE 8 ]> <html class="ie8"> <![endif]-->
<!--[if IE 9 ]> <html class="ie9"> <![endif]-->
<!--[if (gt IE 9)|!(IE)]><!--> <html class=""> <!--<![endif]-->
假设您的页面中有一个标签。例如
<label class="foo">Your browser is IE6!</label>
并且您只想在 IE6 中显示该标签,请执行此操作
label.foo { display: none;}
.ie6 label.foo { display: block; }
这种方法肯定有其优点和缺点。
请阅读 Paul Irish 帖子中的所有其他评论,以深入了解该场景。
事实上,博客文章最好的部分通常从博客文章结束的地方开始。
希望这会有所帮助。
评论
我建议你使用特定于 ie 的类,比如 HTML5 boilperplate do:
<!--[if lt IE 7]> <html class="no-js ie6 oldie" lang="en"> <![endif]-->
<!--[if IE 7]> <html class="no-js ie7 oldie" lang="en"> <![endif]-->
<!--[if IE 8]> <html class="no-js ie8 oldie" lang="en"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]-->
然后你可以有相应的css来显示/隐藏内容,例如:
.ie6-content: {visible: false;}
.ie6 .ie6-content: {visible: true;}
.content {visible: true;}
.ie6 .content {visible:false}
因此,with 部分仅在 IE6 中可见,而 with 部分在 IE6 中不可见。ie6-content
content
评论
条件注释(不幸的是)不会让你的船漂浮起来,因为它们直到 IE 5 才存在。此外,它们在 netscape 上不可用。相反,简单地说,您在内容的末尾放置一个 iframe,以显示您的实际页面内容。
<title>Your websites title</title>
<body style="margin:0px;font-size:0px;width:100%;height:100%;overflow:hidden">
<h1>heading</h1>
<p>Body paragraph</p>
<!--[if gt IE 6]><!-->
<iframe frameborder="0" width="100%" height="100%" src="main.html" style="position:relative;width:100%;height:100%;background-color:white"></iframe>
<!--<![endif]-->
<style language="css" type="text/css">/*<!--*/
/* put your limited CSS here */
/*-->*/</style>
</body>
然后,放入下层显示的条件注释,以便 iframe 不会显示在 IE 6 或 IE 5 上。然后,只要 iframe 没有任何文本内容,它甚至在第一个 Internet 浏览器的第一个版本中都是不可见的。
然后,因为没有一个理智的人愿意投入足够的时间、精力和精力来为普通网站提供与 IE5 的兼容性,所以你可以只使用下层显示的条件注释(谢天谢地,在支持 iframe 之前就支持了)。
然后,你可以为浏览器添加一些超级基本的CSS,比如最老版本的Netscape。超级基本的CSS包括颜色和裁剪等内容,并排除了几乎所有酷炫和现代的东西。
当然,我的源代码是世界上第一个网站的源代码。最完整的位可以在这里找到:在CERN。这也是将标题放在头部之外的原因,并且根本不包含任何头部。
因此,此方法将允许您向所有早于 IE 6 的浏览器显示网页的简单替代方案。然后,您可能会问Chrome,Firefox,Opera和其他浏览器的情况如何。好吧,这些浏览器会自动更新。因此,实际上,没有必要将支持扩展到它们的先前版本。
无论如何,上面的布局充其量是笨拙的,但是嘿:它有效。而且,这对我来说已经足够了。
评论
Is it possible with a conditional comment?
是的。