我们有一个网站http://www.globalforcestn.com/。除了我放在模板中的条件IE注释外,一切都很好。因此,在IE(特别是菜单)中无法正确呈现网站。它向左移动。这是我们的代码:
<!--[if lt IE 11]>
<link href="/modules/mod_maximenuck/themes/css3megamenu/css/ie7.css" rel="stylesheet" type="text/css" />
<![endif]-->
但它不会尊重IE条件。当浏览器设置为兼容模式时,它将呈现它。但是,在兼容模式下,该网站看起来更加糟糕。
希望得到你的回复。谢谢!
答案 0 :(得分:3)
IE停止支持IE10以后的条件评论。因此条件注释只适用于IE9,IE8,IE7,如果你仍然支持它,IE6(IE5及以下版本,但支持IE5?)。
因此,如果你正在瞄准IE9,那么简单的[if IE]
将会这样做,因为它将被IE10及更高版本忽略。如果你想让上述内容在IE10中运行,那你就不幸了。
请参阅Microsoft的声明:http://msdn.microsoft.com/en-us/library/ie/hh801214(v=vs.85).aspx
答案 1 :(得分:0)
在Internet Explorer 10标准中删除了对条件注释的支持,这意味着IE10及更高版本的条件注释被视为常规注释(被浏览器忽略)
来源:http://msdn.microsoft.com/en-us/library/ie/hh801214(v=vs.85).aspx
答案 2 :(得分:0)
目标IE10 +的唯一方法是使用浏览器检测代码。您可以使用php函数获取$browser = get_browser();
之类的浏览器详细信息,然后使用strpos
搜索浏览器代理字符串。但既然你的问题提到了joomla。在joomla中实现了一个php函数,它很容易使用。如果有人想尝试,我会分享。
jimport('joomla.environment.browser');
$browser = &JBrowser::getInstance();
$browserType = $browser->getBrowser();
$browserVersion = $browser->getMajor();
$client = new JApplicationWebClient();
然后你可以使用if else语句并进行比较。您可以使用此link来检查IE浏览器用户代理。
例如,对于IE 10和11,我将使用以下
if(($browserType == 'mozilla') && ($client->engine == JApplicationWebClient::TRIDENT)) //IE11
if(($browserType == 'msie') && ($client->engine == JApplicationWebClient::TRIDENT)) //IE10
很多浏览器都会使用mozilla,但很少有人会使用三叉戟而非流行的浏览器除了IE之外。注意:你需要检查浏览器类型和IE 10一样,我认为它是msie。但是,您需要获取针对特定IE的修订,在这种情况下可以是rv:11.0,您可以在测试页上检查它是否只使用print_r($agentString)
为此,您需要使用$agentString = $browser->getAgentString();
然后使用strpos
执行字符串搜索
因此对于IE 10&amp; 11:
$ ieagentversion10 = strpos($ agentString,'10');
$ ieagentversion11 = strpos($ agentString,'11');
然后你可以简单地将它添加到If语句:
&& ($ieagentversion10 == true)
&& ($ieagentversion11 == true)