2016-11-13 5 views
1

Может ли кто-нибудь объяснить мне разницу между первым и вторым синтаксисом условного комментария?Синтаксис условных комментариев

<!--[if lt IE 8]><html class="no-js lt-ie8"><![endif]--> 
<!--[if gt IE 8]><!--><html class="no-js"><!--<![endif]--> 

Почему второй один использование использовать синтаксис <!--> до того <html> тега? Можно ли использовать следующий синтаксис с тем же результатом?

<!--[if lt IE 8]><html class="no-js lt-ie8"><![endif]--> 
<!--[if gt IE 8]><html class="no-js"><![endif]--> 

Заранее благодарен!

+0

Лучшим вопросом будет то, почему этот ужасный старый код находится в приложении/сайте в первую очередь. Условные комментарии давно прошли путь додо. (BTW, вторая строка позволяет любому браузеру больше IE8 или любого другого браузера использовать этот класс. – junkfoodjunkie

+0

Итак, как я могу управлять пользователем с более старым браузером для полной совместимости? –

+0

Во-первых, если пользователь использует IE8 или старше, скажите пользователю, чтобы он получил новый браузер, обновил свой компьютер или аналогичный. Такое старое программное обеспечение представляет собой угрозу безопасности. При этом, если сайт правильно закодирован, не должно быть необходимости в условных IE-комментариях. , и CSS, предназначенные для обратной совместимости, должны позаботиться о том, что вы можете на него наброситься. И в редких случаях, когда по умолчанию они просто не могут взломать его, вы можете бросить определенные CSS-хаки только для IE. – junkfoodjunkie

ответ

0

Нет, ваша вторая настройка не будет такой же, как ваша первая.

В первом, где <!--[if gt IE 8]><!--><html class="no-js"><!--<![endif]--> используется, это позволит все другие браузеры (тот, о том, что не понимает условные комментарии), чтобы иметь <html class="no-js">, что вторая установка не будет

Src: https://msdn.microsoft.com/en-us/library/ms537512(v=vs.85).aspx

0

General принял синтаксис (был)

open tag : <!--[if condition version]> 
end tag : <![endif]--> 

Лучшее предположение, что сво попытка на странице bogus comment. Две тире после <! делают это узлом комментария в DOM. См. Это answer

<!--[if gt IE 8]><!--><html class="no-js"><!--<![endif]--> 
       ^^^^^     ^^^^  
       |||||     |||| 
       ________Bogus Comment________ 

На самом деле это не имеет никакого значения. Последний, вероятно, будет отображаться как <!-- comment --> или comment + condition ... не уверен.

 Смежные вопросы

  • Нет связанных вопросов^_^