Я тут задумал кое о чем вам рассказать, но в процессе экспериментов натолкнулся на несколько интересных и не очень известных мелочей, о коих, собственно, расcкажу в первую очередь. Заодно мне памятка будет. Этот пост посвящен первой такой мелочи — условным комментариям в Internet Explorer.
Каждый может открыть MSDN и прочитать об условных комменттариях. Если коротко, то там их приведено аж целых два типа:
| downlevel-hidden | <!--[if expression]> HTML <![endif]--> |
| downlevel-revealed | <![if expression]> HTML <![endif]> |
И вот возникает у верстальщика желание сделать так, чтобы кусок html был виден всем, кроме IE. И чтоб валидно. Дочитать указанную страницу до конца многие не осиливают (а там есть решение) и начинают искать. Погуглив, многие натыкаются на конструкцию вида <!--[if !IE]>--> HTML <!--<![endif]--> описанную много где. Ну и гордо её применяют. Типа и валидатор сыт, и верстальщик цел. А потом, как-нибудь появляется необходимость заверстать кусочек так, чтоб видели все, кроме младших версий IE. И если сочинить условие <!--[if gte IE 7]>--> HTML <!--<![endif]-->, то моментально выясняется, что кусочек --> отлично отображается как текст. Так вот, правильный комментарий без посторонних эффектов это (смотрите внимательно, разница в два символа) —
<!--[if gte IE 7]><!--> HTML <!--<![endif]-->
Этот HTML увидят все версии IE >= 7, все немайкрософтовые браузеры, и валидатор W3C тоже увидит.
На закуску. Кстати, майкрософт забыл описать ещё одно условие — [if VML]. Это означает поддержку VML в IE. Подразумевалось, что IE5 поставлялся без VML и потом докачивал, при необходимости, подержку VML с сайта майкрософта.
0 коммент.:
Отправить комментарий