2014-10-08 2 views
0

У нас есть сайт, http://www.globalforcestn.com/. Все в порядке, за исключением условных комментариев IE, которые я вставлял в шаблон. Из-за этого сайт не отображается правильно в IE (в частности, в меню). Он перемещается влево. Это наш код:Условный IE Комментарии не работают в Joomla

<!--[if lt IE 11]> 
<link href="/modules/mod_maximenuck/themes/css3megamenu/css/ie7.css" rel="stylesheet" type="text/css" /> 
<![endif]--> 

Но он не будет соблюдать условия IE. Он отобразит его, когда браузер настроен на режим совместимости. Тем не менее, веб-сайт выглядит еще более ужасным в режиме совместимости.

В ожидании ответа. благодаря!

+0

FYI Вы можете размещать подобные вопросы в будущем в joomla.stackexchange.com –

ответ

0

Поддержка условных комментариев была удалена в Internet Explorer 10 стандартов, и это означает, что conditiona комментарии для IE10, а затем рассматриваются как обычные комментарии (игнорируется браузером)

источник: http://msdn.microsoft.com/en-us/library/ie/hh801214(v=vs.85).aspx

+0

Я только что узнал об этом тоже. Спасибо за информацию. Знаете ли вы, что какие-то CSS-хаки для IE 11? Благодаря! – emmet

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

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. Обратите внимание: вам нужно проверить browserType, как для IE 10, я думаю, что это msie. Однако вы должны получить пересмотр целевой конкретной IE, который в этом случае может быть с.в.: 11,0 и вы можете проверить, что на тестовой странице просто использовать print_r($agentString)

Для того, чтобы сделать это, Вы должны использовать $agentString = $browser->getAgentString();

, а затем выполнить поиск строки с использованием strpos Поэтому для IE 10 & 11: $ ieagentversion10 = strpos ($ agentString, '10 '); $ ieagentversion11 = strpos ($ agentString, '11 '); Тогда вы можете просто добавить это заявление, если:

&& ($ieagentversion10 == true) 
&& ($ieagentversion11 == true)