Условные комментарии работают только для таблиц стилей? - PullRequest
0 голосов
/ 10 сентября 2011

Условные комментарии работают только для стилей CSS и ссылок на таблицы стилей или могут применяться ко всем HTML / JS. Я спрашиваю, потому что я хотел бы отобразить конкретное сообщение, если пользователь использует браузер, в котором некоторые функциональные возможности, как известно, не работают / функционируют так же, как в других?

Если нет, то есть ли через PHP + regex точный браузер, который использует пользователь, так как $_SERVER['HTTP_USER_AGENT'], кажется, возвращает строку, содержащую несколько имен пользовательских агентов?

Ответы [ 2 ]

0 голосов
/ 10 сентября 2011

Если вы имеете в виду такие вещи, как:

<!--[if lte IE 6]> ... <![endif]-->

да, вы можете использовать это и в HTML (например, он часто используется для условного добавления дополнительных CSS-исправлений для IE6).

Но я бы не стал полагаться на это, чтобы, скажем, сказать пользователю обновить устаревший браузер. Вместо этого я бы сделал это на стороне сервера, проверив $_SERVER['HTTP_USER_AGENT'].

Распознавание браузера не является простым, так как браузеры имеют тенденцию форматировать пользовательский агент так, как им нравится; Есть много библиотек, которые используют списки сравнений и т. д., чтобы попытаться выяснить, кто на самом деле является браузером / версией / ОС, анализируя строку user-agent.

0 голосов
/ 10 сентября 2011

условные комментарии «работают» в разметке, вы можете обернуть их вокруг CSS, HTML и JavaScript. Просто оберните все, что не для IE, с помощью [if! IE]

...