HTML / условные комментарии. Ведут ли себя условные комментарии в браузерах ожидаемым образом?

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

Есть ли ошибки в форматировании/синтаксисе этого CC?

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="718" height="227" id="swf">
    <param name="movie" value="images/swf.swf" />
    <!--[if !IE]>-->
    <object type="application/x-shockwave-flash" data="images/swf.swf" width="718" height="227">
    <!--<![endif]-->
        <img src="images/alt.jpg" border="0" width="718" height="227">
    <!--[if !IE]>-->
    </object>
    <!--<![endif]-->
</object>

person John Himmelman    schedule 08.06.2010    source источник


Ответы (3)


Условные комментарии CSS специфичны для IE в Windows. Посмотрите, что говорит Википедия.

При правильном использовании они будут интерпретироваться как обычные комментарии в других браузерах. Это действительно зависит от того, как вы их используете.

Опубликованный вами пример не будет работать правильно, так как вы должны обернуть все условные выражения в комментарий HTML.

Неверно:

<!--[if !IE]>-->
<object type="application/x-shockwave-flash" data="images/swf.swf" width="718" height="227">
<!--<![endif]-->
    <img src="images/alt.jpg" border="0" width="718" height="227">
<!--[if !IE]>-->
</object>
<!--<![endif]-->

Правильно:

<!--[if !IE]>
<object type="application/x-shockwave-flash" data="images/swf.swf" width="718" height="227">
<![endif]-->
    <img src="images/alt.jpg" border="0" width="718" height="227">
<!--[if !IE]>
</object>
<![endif]-->
person Oded    schedule 08.06.2010
comment
В вики-статье говорится, что это допустимый альтернативный условный комментарий, раскрываемый на более низком уровне. Существует также другой альтернативный синтаксис. Какой из них чаще всего используется разработчиками и соответствует текущим стандартам? Спасибо! - person John Himmelman; 08.06.2010
comment
@John Himmelman - Самый безопасный и наиболее используемый (из тех, что я видел) скрыт на нижнем уровне. - person Oded; 08.06.2010

Условные комментарии — это просто комментарии HTML, они не могут влиять на другие браузеры, поскольку обрабатываются как есть. Только IE распознает условный комментарий.

person Andy E    schedule 08.06.2010

Воздействуют ли условные комментарии в браузерах должным образом?
Судя по моему опыту, да. (IE только как сказали другие)

Могут ли они вызывать ошибки рендеринга или другие проблемы?
Нет, не сами комментарии. Код внутри, возможно, но в той же степени любой код может вызвать ошибки рендеринга или другие проблемы.

Есть ли какие-либо ошибки в форматировании/синтаксисе этого CC?
Я не вижу, проще всего это проверить.

person Kerry Jones    schedule 08.06.2010