Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
不同的浏览器是否可以使用不同的html页面内容?_Html_Css_Browser_Conditional - Fatal编程技术网

不同的浏览器是否可以使用不同的html页面内容?

不同的浏览器是否可以使用不同的html页面内容?,html,css,browser,conditional,Html,Css,Browser,Conditional,我有一个我的客户喜欢的全屏/背景幻灯片,在InternetExplorer8及以下版本中完全失败。我认为现在试图修复这个问题已经超出了我的能力范围,所以如果浏览器是IE8或更低版本,我只想将它切换到另一个IE安全的背景幻灯片(不太好看,但至少是一些东西) 但是,我知道您可以使用 <!--[if IE]> 您可以在..-标记中定义不同的布局,其中browserid是IE、FF等中的一个,默认情况下使它们不可见 然后定义一个javscript函数,该函数在onpageLoad处调用,并

我有一个我的客户喜欢的全屏/背景幻灯片,在InternetExplorer8及以下版本中完全失败。我认为现在试图修复这个问题已经超出了我的能力范围,所以如果浏览器是IE8或更低版本,我只想将它切换到另一个IE安全的背景幻灯片(不太好看,但至少是一些东西)

但是,我知道您可以使用

<!--[if IE]>

您可以在
..
-标记中定义不同的布局,其中browserid是IE、FF等中的一个,默认情况下使它们不可见


然后定义一个javscript函数,该函数在onpageLoad处调用,并计算
navigator.userAgent
属性。包含客户端浏览器名称的。根据该值,可以更改相应的显示样式。

如果使用条件注释在
标记上设置类,可以避免使用单独的样式表:

<!--[if lt IE 7]>  <body class="ie ie6 lte9 lte8 lte7"> <![endif]-->
<!--[if IE 7]>     <body class="ie ie7 lte9 lte8 lte7"> <![endif]-->
<!--[if IE 8]>     <body class="ie ie8 lte9 lte8">      <![endif]-->
<!--[if IE 9]>     <body class="ie ie9 lte9">           <![endif]-->
<!--[if gt IE 9]>  <body class="ie">                    <![endif]-->
<!--[if !IE]><!--> <body>                               <!--<![endif]-->

在您的样式中,只需隐藏ul:
.lte9.cb幻灯片{display:none;}

见:


要展开其中一条注释,您可以将条件注释放在任意位置,因此可以执行以下操作:

<!--[if lt IE9]>// IE-specific slideshow HTML here. <![endif]-->
<!--[if gte IE 9]><!-->// Standard slideshow HTML here (for IE9+ and non-IE browsers) <!--<![endif]-->

//此处为标准幻灯片HTML(适用于IE9+和非IE浏览器)
试试这个:

 <!--[if !LT IE 9]><!-->
 <p>Not IE 8 and below and all other browsers</p>
 <!--<![endif]-->

 <!--[if lt IE 9]>
 <p>IE 8 and below </p>
 <![endif]-->

不是IE 8及以下版本和所有其他浏览器

第一个块输出到除IE8及以下版本之外的所有浏览器

第二个块输出到IE8和以下版本。

在IE8和不太特定的CSS文件中
您可以选择不显示内容:
.cb slideshow{display:none;}
尽管HTML仍然存在,但用户将无法看到它。或者出于其他原因,您必须删除HTML吗?以下是IE6的一个示例:CC可以在文档中的任何位置使用,而不仅仅是
.Brilliant-现在踢我自己:-)非常感谢默认情况下使内容不可见并不是最好的选择-practice@ScottSimpson:当然。但是,在这种情况下,最佳做法是什么?我假设,您可以在pageload上发出ajax请求,传递userAgent并获取某个服务器应用程序返回的标记。但由于这不是明确要求的,所以我省略了它。@Luigidelcarno——请看我的答案。@ScottSimpson非常感谢。刚刚学到了一些新东西。这就是为什么我喜欢这个页面。据我所知,他不只是想更改样式,而是想更改每个浏览器的完整标记。从技术上讲,这个答案就是更改标记。条件注释不限于文档的
,它们也可以在
中使用。也许更好的解决方案是从IE8单图像解决方案作为默认方案开始,然后在正文或javascript中添加其他具有条件的图像。逐步增强等等。
 <!--[if !LT IE 9]><!-->
 <p>Not IE 8 and below and all other browsers</p>
 <!--<![endif]-->

 <!--[if lt IE 9]>
 <p>IE 8 and below </p>
 <![endif]-->