Какие все эти комментарии я вижу на страницах HTML после doctype? - PullRequest
2 голосов
/ 11 октября 2011

Может кто-нибудь сказать мне, что это такое:

<!DOCTYPE html>
<!--[if lt IE 7]> <html class="no-js ie ie6" lang="en"> <![endif]-->
<!--[if IE 7]>    <html class="no-js ie ie7" lang="en"> <![endif]-->
<!--[if IE 8]>    <html class="no-js ie ie8" lang="en"> <![endif]-->
<!--[if gt IE 8]><!-->  <html class="no-js iframe" lang="en"> <!--<![endif]-->

Я видел это на многих страницах, но на некоторых страницах нет ссылки JavaScript для поддержки декларации документа.

Ответы [ 5 ]

3 голосов
/ 11 октября 2011

Кажется, это фрагмент из стандартного формата html5 Boilerplate для «определения браузера», см. http://html5boilerplate.com/

Выделенный вами раздел позволяет анализировать только один раздел тега <html> в зависимости отна вкус браузера, который использует посетитель сайта.

Подробнее об этом методе на сайте авторов> http://paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/

2 голосов
/ 11 октября 2011

Это тип документа для страниц HTML5

<!DOCTYPE html>

Следующие строки означают, что код между закомментированными тегами специфичен для IE (первая для браузеров менее IE7 (IE6, IE5 и т. Д.), Вторая для IE7, третья для IE8 и последняя для> = IE9)

<!--[if lt IE 7]> <html class="no-js ie ie6" lang="en"> <![endif]-->
<!--[if IE 7]>    <html class="no-js ie ie7" lang="en"> <![endif]-->
<!--[if IE 8]>    <html class="no-js ie ie8" lang="en"> <![endif]-->
<!--[if gt IE 8]><!-->  <html class="no-js iframe" lang="en"> <!--<![endif]-->
2 голосов
/ 11 октября 2011
 <!--[if lt IE 7]> 

Это означает, что код внутри <!--[if lt IE 7]>...<![endif]--> будет работать только в браузере IE 7 и <!--[if lt IE 8]>...<![endif]--> только в браузерах IE8

Этот совет работает только в браузерах IE.Например, вы можете написать <!--[if lt IE 7]><style .../><![endif]-->, и этот стиль будет работать только в IE 7. Чем на следующей строке вы можете написать <!--[if lt IE 8]><style .../><![endif]-->, и эти стили будут работать только в IE8

1 голос
/ 11 октября 2011

Это только проверки совместимости со старыми браузерами

<!DOCTYPE html> обычно относится к HTML5, браузеры ниже IE9 вообще не поддерживают HTML5, поэтому необходимы настройки. Вот почему существуют HTML-предложения if, которые проверяют, используете ли вы IE и какую версию. Элемент HTML получает специальный класс для этой версии браузера, чтобы CSS мог видеть, является ли он IE и в какой версии (например, для исправления блочной модели IE6)

Вероятно, класс no-js удаляется из JavaScript, поэтому CSS может получить доступ к определенным элементам, только если JavaScript включен / выключен

0 голосов
/ 11 октября 2011

Вы должны использовать это как ваш тип документа: <!DOCTYPE html>

Остальное не относится к типу документа и зависит от IE.

...